TOP

VBA-Lektion 11.1. Arbeitsmappenereignisse (Workbook Events)

Wir können Arbeitsmappenereignisse (wie Öffnen, Schließen usw.) haben, die Auslöser (Schalter) für VBA-Code sein können.


Workbook_Open (Öffnen des Buches)

Um den Anweisungen beim Öffnen der Arbeitsmappe zu folgen, gehen Sie zu „DieseArbeitsmappe“ und wählen Sie „Workbook“ aus:

Das Workbook_Open-Ereignis wird standardmäßig hinzugefügt und ausgelöst, wenn die Arbeitsmappe geöffnet wird:

Private Sub Workbook_Open()

End Sub

Wenn wir beispielsweise die folgende Anweisung hinzufügen, wird das Dialogfeld angezeigt, wenn die Arbeitsmappe geöffnet wird:

Private Sub Workbook_Open()
     MsgBox "Welcome"
End Sub

Workbook_BeforeClose (Ereignis vor dem Schließen der Arbeitsmappe)

Um die Anweisungen vor dem Schließen der Arbeitsmappe auszuführen, wählen Sie BeforeClose aus:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

End Sub

Das Schließen der Arbeitsmappe kann abgebrochen werden, indem die Variable „Cancel“ auf True gesetzt wird.

Unten sehen Sie ein Beispiel, in dem der Benutzer um eine Bestätigung zum Schließen der Arbeitsmappe gebeten wird:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
     'Wenn der Benutzer mit NO antwortet, hat die Variable Cancel den Wert TRUE (wodurch das Schließen der Arbeitsmappe abgebrochen wird).
     If MsgBox("Do you really want to close this workbook ?", 36, "I confirm") = vbNo Then
         Cancel = True
     End If
End Sub

Workbook_BeforeSave (Ereignis vor dem Speichern der Arbeitsmappe)

Dieses Ereignis tritt unmittelbar vor dem Speichern der Arbeitsmappe ein:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

End Sub

Das Speichern einer Datei kann abgebrochen werden, indem die Variable „Cancel“ auf True gesetzt wird.

Workbook_BeforePrint (Ereignis vor dem Drucken des Buches)

Dieses Ereignis tritt ein, bevor die Arbeitsmappe gedruckt wird:

Private Sub Workbook_BeforePrint(Cancel As Boolean)

End Sub

Das Drucken der Datei kann abgebrochen werden, indem die Variable „Cancel“ auf True gesetzt wird.

Workbook_AfterSave (Ereignis nach dem Speichern der Arbeitsmappe)

Dieses Ereignis tritt unmittelbar nach dem Speichern der Arbeitsmappe ein:

Private Sub Workbook_AfterSave(ByVal Success As Boolean)

End Sub

Workbook_SheetActivate (Arbeitsblattwechselereignis)

Dieses Ereignis tritt jedes Mal auf, wenn Sie zwischen Arbeitsblättern in einer Arbeitsmappe wechseln:

Private Sub Workbook_SheetActivate(ByVal Sh As Object)

End Sub

In diesem Beispiel wird der Name des aktiven Blattes im Dialogfeld angezeigt:

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
     MsgBox "Name of Sheet : " & Sh.Name
End Sub

Workbook_SheetBeforeDoubleClick (Doppelklick-Ereignis auf einer Zelle)

Dieses Ereignis tritt auf, wenn auf eine Arbeitsblattzelle doppelgeklickt wird:

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

End Sub

Mit diesem Ereignis können wir beispielsweise je nach ausgewähltem Blatt eine Zellenfüllfarbe hinzufügen:

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
     If Sh.Name = "Sheet1" Then
         Target.Interior.Color = RGB(255, 108, 0) 'orange Farbe
     Else
         Target.Interior.Color = RGB(136, 255, 0) 'Grüne Farbe
     End If
End Sub

Workbook_SheetBeforeRightClick (Ereignis vor Rechtsklick)

Dieses Ereignis tritt ein, bevor der rechte Mausklick erfolgt:

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

End Sub

Workbook_SheetChange (Ereignis zur Änderung des Blattinhalts)

Dieses Ereignis tritt immer dann ein, wenn sich der Inhalt des Arbeitsblatts ändert:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

End Sub

Workbook_SheetCalculate (SheetCalculate-Ereignis)

Dieses Ereignis tritt immer dann auf, wenn Daten in einem Arbeitsblatt berechnet oder neu berechnet werden:

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)

End Sub

Workbook_SheetSelectionChange (Ereignis zur Änderung des ausgewählten Zellbereichs)

Dieses Ereignis tritt immer dann ein, wenn sich der Inhalt des ausgewählten Zellbereichs in der Tabelle ändert:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

End Sub

In diesem Beispiel ändert sich die Füllfarbe, wenn Zelle A1 leer ist:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
     If Range("A1") = "" Then
         Target.Interior.Color = RGB(124, 255, 255) 'Blaue Farbe
    End If
End Sub

Workbook_NewSheet (Ereignis „Neues Blatt hinzufügen“)

Dieses Ereignis tritt immer dann auf, wenn der Arbeitsmappe ein neues Blatt hinzugefügt wird:

Private Sub Workbook_NewSheet(ByVal Sh As Object)

End Sub

Workbook_SheetFollowHyperlink (Link-Klick-Ereignis)

Dieses Ereignis tritt auf, wenn auf einen Link (Hypertext) geklickt wird:

Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)

End Sub