UserForm in VBA schließen: So reagierst Du auf das Schließen-Ereignis
Schritt-für-Schritt-Anleitung
Um das Ereignis "Klick auf das X" in einer UserForm abzufangen, kannst Du den folgenden VBA-Code verwenden:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
' Damit mit X nicht geschlossen werden kann
If CloseMode = 0 Then
MsgBox "Bitte schließen Sie die Anwendung mit der -Ende- Schaltfläche.", vbCritical
Cancel = 1
End If
End Sub
- Öffne die VBA-Entwicklungsumgebung in Excel (Alt + F11).
- Wähle die UserForm aus, in der Du das Schließen-Ereignis steuern möchtest.
- Füge den obigen Code in das Codefenster der UserForm ein.
- Speichere die Änderungen und teste die UserForm.
Mit diesem Code kannst Du verhindern, dass die UserForm durch einen Klick auf das X geschlossen wird. Stattdessen wird eine Nachricht angezeigt, die den Benutzer darauf hinweist, das Fenster auf eine andere Weise zu schließen.
Häufige Fehler und Lösungen
Alternative Methoden
Falls Du das Schließen der UserForm ganz ohne X ermöglichen möchtest, kannst Du die UserForm so gestalten, dass sie kein X anzeigt:
- Setze die Eigenschaft
ControlBox
der UserForm auf False
.
- Dadurch wird das X-Button entfernt und der Benutzer kann die UserForm nur über die Schaltfläche zum Schließen beenden.
Praktische Beispiele
Angenommen, Du hast eine UserForm mit dem Namen MeinFormular
. Du kannst den folgenden Code verwenden, um das Schließen-Ereignis zu verhindern:
Private Sub MeinFormular_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then
MsgBox "Bitte verwenden Sie die Schaltfläche zum Beenden.", vbCritical
Cancel = 1
End If
End Sub
Dieses Beispiel zeigt, wie wichtig es ist, das UserForm_QueryClose
-Ereignis anzupassen, um die Kontrolle über das Schließen der UserForm zu behalten.
Tipps für Profis
- Nutze das
UserForm_QueryClose
-Ereignis nicht nur zum Schließen, sondern auch, um Daten zu speichern oder um Benutzereingaben zu validieren, bevor das Fenster geschlossen wird.
- Erwäge, eine benutzerdefinierte Schaltfläche "Schließen" in Deine UserForm einzufügen, die das Schließen der Form kontrolliert und dem Benutzer die Möglichkeit gibt, Änderungen zu bestätigen.
FAQ: Häufige Fragen
1. Wie kann ich das Schließen der UserForm mit einer Bedingung verknüpfen?
Du kannst die Abfrage im UserForm_QueryClose
-Ereignis so anpassen, dass sie nur unter bestimmten Bedingungen ausgeführt wird. Zum Beispiel:
If SomeCondition Then
' Schließen erlauben
Else
' Schließen verhindern
Cancel = 1
End If
2. Kann ich das Schließen der UserForm auch mit einer anderen Taste steuern?
Ja, Du kannst die Eingabe von Tasten wie Esc oder Enter in der UserForm abfangen und entsprechende Aktionen durchführen, um die UserForm zu schließen oder zu verhindern, dass sie geschlossen wird.