QueryClose-Ereignis

Tritt auf, bevor ein Benutzerformular geschlossen wird.

Syntax

Private Sub UserForm_QueryClose(CancelAs Integer, CloseModeAs Integer)

Die Syntax der QueryClose-Eigenschaft weist folgende Teile auf:

Teil Beschreibung
Abbrechen Eine ganze Zahl. Durch Festlegen dieses Arguments auf einen anderen Wert als 0 wird das QueryClose-Ereignis in allen geladenen Benutzerformularen beendet, sodass das Benutzerformular und die Anwendung nicht geschlossen werden.
CloseMode Ein Wert oder eine Konstante, der bzw. die die Ursache für das QueryClose-Ereignis angibt.

Rückgabewerte

Das CloseMode-Argument gibt die folgenden Werte zurück:

Konstante Wert Beschreibung
vbFormControlMenu 0 Der Benutzer hat den Befehl Schließen aus dem Menü Steuerung auf dem UserForm ausgewählt.
vbFormCode 1 Die Unload-Anweisung wurde über den Code aufgerufen.
vbAppWindows 2 Die aktuelle Windows-Sitzung wird beendet.
vbAppTaskManager 3 Der Windows Task-Manager schließt die Anwendung.

Diese Konstanten werden in der Visual Basic for Applications-Objektbibliothek im Objektkatalog aufgelistet. Beachten Sie, dass VbFormMDIForm ebenfalls im Objektkatalog angegeben, aber noch nicht unterstützt wird.

Hinweise

Dieses Ereignis wird in der Regel verwendet, um sicherzustellen, dass es keine nicht abgeschlossenen Aufgaben in den Benutzerformularen einer Anwendung gibt, bevor die Anwendung geschlossen wird. Wenn beispielsweise ein Benutzer seine neuen Daten nicht in jedem UserForm gespeichert hat, wird der Benutzer aufgefordert, die Daten zu speichern.

Wenn sich eine Anwendung schließt, können Sie die QueryCloseEreignisprozedur verwenden, um die Cancel-Eigenschaft auf True festzulegen, wodurch der Schließvorgang gestoppt wird.

Beispiel

Der folgende Code zwingt den Benutzer, auf den Client-Bereich Benutzerformular zu klicken, um ihn zu schließen. Wenn der Benutzer versucht, das Schließfeld in der Titelleiste zu verwenden, wird der Abbrechen-Parameter auf einen Wert ungleich Null festgelegt, um das Beenden zu verhindern. Wenn der Benutzer jedoch auf den Client-Bereich geklickt hat, besitzt CloseMode den Wert "1" und Unload Me wird ausgeführt.

Private Sub UserForm_Activate()
    Me.Caption = "You must Click me to kill me!"
End Sub

Private Sub UserForm_Click()
  Unload Me
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    'Prevent user from closing with the Close box in the title bar.
    If CloseMode <> 1 Then Cancel = 1
    Me.Caption = "The Close box won't work! Click me!"
End Sub

Siehe auch

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.