VBA Formular schließen

VBA - Visual Basic for Application

VBA hilft im Büroalltag viele wiederkehrende Funktionen zu automatisieren oder zumindest ein paar langwierige Klicks einzusparen. Dabei ist manchmal auch eine Benutzerinteraktion über ein entsprechenden Formular oder Dialog erforderlich.

Hat man im VBA-Editor von Microsoft Office ein Formular oder Benutzerdialog erstellt, so gehört es zum guten Ton, dass es auch einen Schließen-Button oder Abbrechen-Button gibt, um das Formular ohne weitere Benutzerinteraktion wieder auszublenden.

Das folgende Bild zeigt ein Beispiel für ein solches Formular in der Entwurfsansicht.

Screenshot Entwurfsansicht eines Beispielformulars
VBA Beispiel-Formular in der Entwurfsansicht
Bestseller Nr. 1

Formular schließen mit Unload Me

Damit ein solches Formular geschlossen werden kann, muss natürlich erstmal das Formular angezeigt werden. Den Code für das Schließen des Formulars kann man dann mit einem Doppelklick auf den Schließen-Button zum Erzeugen des Click-Events generieren. Der Schließen-Button hat in diesem Fall den Namen “btnClose” und daraus wird dann automatisch das Ereignis “btnClose_Click()” erzeugt.

Private Sub btnClose_Click()
  Unload Me
End Sub

Dort fügt man den Aufruf Unload Me ein. Das Me ist die Referenz auf das Formular selbst. In anderen Programmiersprachen, wird hier oft this verwendet. Man kann Me auch durch den jeweiligen Formularnamen ersetzen. Das benötigt man, wenn man das Formular nicht aus dem eigenen Formular-Code heraus schließen möchte, sondern zum Beispiel aus einem anderen Makro-Modul heraus.

Screenshot VBA-Editor mit Code zum Schließen des Formulars
Button-Klick-Ereignis zum Schließen des Formulars

Hinweis: Von der Formular-Entwurfsansicht gelangt man zum Formular-Code auch mit dem HotKey/ShortCut F7 oder über das Menü “Ansicht => Code“.

DoCmd.Close führt zu Laufzeitfehler ‘424’

In vielen Foren wird empfohlen, das Formular über den Befehl DoCmd.Close zu schließen. Das funktionierte bei mir nicht in den gängigen Office-Anwendungen und führte zum Laufzeitfehler:

Laufzeitfehler '424': Objekt erforderlich
Screenshot Entwicklungsumgebung VBA mit Code DoCmd.Close
Laufzeitfehler bei DoCmd.Close
Bestseller Nr. 1
Bestseller Nr. 2

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert