Wie verwende ich das QueryClose-Ereignis in VBA?

Das `QueryClose`-Ereignis in VBA wird ausgelöst, bevor ein Formular oder ein Anwendungsfenster geschlossen wird. Es bietet Ihnen die Möglichkeit, zu überprüfen, ob das Schließen des Formulars verhindert werden soll. Dieses Ereignis kann in Benutzerformularen in Excel oder anderen Office-Anwendungen verwendet werden.

Hier ist ein grundlegendes Beispiel, wie Sie das `QueryClose`-Ereignis in einem VBA-UserForm verwenden können:

  • Öffnen Sie den VBA-Editor, indem Sie `ALT + F11` drücken.
  • Erstellen oder öffnen Sie ein UserForm, indem Sie im Projekt-Explorer auf ‘Einfügen’ -> ‘UserForm’ klicken.
  • Doppelklicken Sie im Projekt-Explorer auf das UserForm, um den Code-Editor zu öffnen.
  • Wählen Sie im Dropdown-Menü oben links das UserForm aus und wählen Sie im Dropdown-Menü oben rechts `QueryClose`.
  • Implementieren Sie den Code, um die gewünschte Logik für das Ereignis zu definieren.

Hier ist ein einfaches Beispiel, das das Schließen des Formulars verhindert, wenn eine bestimmte Bedingung nicht erfüllt ist:

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    ' Überprüfen, ob das Close-Mode ein Standard-Schließereignis ist
    If CloseMode = vbFormControlMenu Then
        Dim response As Integer
        response = MsgBox("Möchten Sie das Formular wirklich schließen?", vbYesNo + vbQuestion, "Formular schließen")
        
        ' Wenn die Antwort Nein ist, das Schließen abbrechen
        If response = vbNo Then
            Cancel = True
        End If
    End If
End Sub

Erläuterung:

  • `CloseMode` gibt an, wie das Ereignis ausgelöst wurde (z.B. durch Anklicken der Schließen-Schaltfläche, durch das Schließen der Anwendung, etc.).
  • Durch Setzen von `Cancel` auf `True` können Sie den Schließvorgang abbrechen.
  • In diesem Beispiel wird der Benutzer gefragt, ob das Formular wirklich geschlossen werden soll, und das Schließen wird abgebrochen, wenn der Benutzer “Nein” auswählt.

Dieses Ereignis ist besonders nützlich, um Benutzer vor dem Verlust von Daten zu warnen oder um sicherzustellen, dass bestimmte Aktionen durchgeführt werden, bevor das Formular oder die Anwendung geschlossen wird.

Unlock Your Potential

Excel

Basic - Advanced

Access

Access Basic - Advanced

Power BI

Power BI Basic - Advanced

Help us grow the project