In der vorherigen Lektion haben wir die Ereignisse im Zusammenhang mit dem gesamten Buch betrachtet. Jetzt konzentrieren wir uns auf Ereignisse, die sich auf ein einzelnes Blatt beziehen.
Um ereignisbasierte Anweisungen für ein einzelnes Arbeitsblatt auszuführen, wählen Sie das Arbeitsblatt im Editor und dann Worksheet aus:
Das SelectionChange-Ereignis wird standardmäßig hinzugefügt. Dieses Ereignis wird immer dann ausgelöst, wenn sich der Inhalt des Bereichs ändert:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub
Der folgende Code fügt beispielsweise einer oder mehreren ausgewählten Zellen Füllfarben hinzu und entfernt automatisch die Füllfarbe aus dem zuvor ausgewählten Bereich, wenn sich dieser Bereich ändert:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Static previous_selection As String If previous_selection <> "" Then 'Hintergrundfarbe aus vorheriger Auswahl entfernen: Range(previous_selection).Interior.ColorIndex = xlColorIndexNone End If 'Hintergrundfarbe zur aktuellen Auswahl hinzufügen: Target.Interior.Color = RGB(181, 244, 0) 'Speichern der Adresse der aktuellen Auswahl: previous_selection = Target.Address End Sub
Dieses Ereignis tritt auf, wenn ein Arbeitsblatt aktiviert wird:
Private Sub Worksheet_Activate() End Sub
Dieses Ereignis tritt auf, wenn ein anderes Arbeitsblatt aktiviert wird:
Private Sub Worksheet_Deactivate() End Sub
Dieses Ereignis tritt auf, wenn auf eine Arbeitsblattzelle doppelgeklickt wird:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) End Sub
Dieses Ereignis tritt ein, bevor Sie mit der rechten Maustaste auf das Arbeitsblatt klicken:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) End Sub
Dieses Ereignis tritt immer dann auf, wenn Daten in einem Arbeitsblatt berechnet oder neu berechnet werden:
Private Sub Worksheet_Calculate() End Sub
Dieses Ereignis tritt immer dann auf, wenn sich der Inhalt der Zellen auf dem angegebenen Blatt ändert:
Private Sub Worksheet_Change(ByVal Target As Range) End Sub
Dieses Ereignis tritt auf, wenn auf einen Link (Hypertext) geklickt wird:
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) End Sub
Um den Code ohne Ereignisse auszuführen, fügen Sie ihn wie folgt zwischen zwei Codezeilen ein:
Application.EnableEvents = False '=> Ereignisse deaktivieren 'Einige Anweisungen... Application.EnableEvents = True '=> Ereignisse wieder aktivieren