StartVBA-Kurs › Dialog-Objekte

Dialog-Objekte in VBA: mit dem Nutzer kommunizieren

Damit ein Makro nicht nur stumm im Hintergrund arbeitet, bietet VBA verschiedene Dialog-Objekte: einfache Meldungsfenster mit MsgBox, Eingabeaufforderungen mit InputBox, den Zugriff auf Excels eigene Standarddialoge über Application.Dialogs sowie frei gestaltbare UserForms für komplexere Eingabemasken.

MsgBox – Meldungen anzeigen

MsgBox "Die Berechnung ist abgeschlossen.", vbInformation, "Excel-Training"

Der erste Parameter ist der Meldungstext, der zweite bestimmt Symbol und Schaltflächen (z. B. vbInformation, vbExclamation, vbYesNo), der dritte optional den Fenstertitel.

Rückgabewert auswerten (Ja/Nein-Abfrage)

If MsgBox("Änderungen wirklich speichern?", vbYesNo + vbQuestion, "Bestätigung") = vbYes Then ActiveWorkbook.Save End If

InputBox – Eingabe abfragen

Dim Name As String Name = InputBox("Bitte Kundennamen eingeben:", "Neuer Kunde") If Name <> "" Then Range("A1").Value = Name End If

Klickt der Nutzer auf Abbrechen, liefert InputBox einen leeren Text zurück – deshalb lohnt sich immer eine Prüfung, bevor der Wert weiterverarbeitet wird.

A
1Musterfirma GmbH
Ergebnis nach InputBox-Eingabe: Der eingegebene Name landet in Zelle A1.

Application.Dialogs – Excel-Standarddialoge nutzen

Statt eigene Fenster zu bauen, kannst du auch die eingebauten Dialoge von Excel selbst per VBA öffnen, z. B. den Speichern-unter-Dialog:

Application.Dialogs(xlDialogSaveAs).Show
Profi-Tipp

Für den modernen Datei-öffnen-Dialog eignet sich besser Application.FileDialog(msoFileDialogOpen) – er ist flexibler konfigurierbar (Startordner, Dateityp-Filter) als die älteren xlDialog…-Konstanten.

UserForms – eigene Dialogfenster gestalten

Für mehrere Eingabefelder, Auswahllisten oder Kontrollkästchen auf einmal reicht eine einfache InputBox nicht mehr. Dafür gibt es UserForms – im VBA-Editor über EinfügenUserForm erstellst du ein eigenes Fenster, das du per Drag & Drop mit Steuerelementen (Textfeld, Listenfeld, Schaltfläche …) bestückst.

  1. Im VBA-Editor: EinfügenUserForm.
  2. Aus der Werkzeugsammlung Steuerelemente auf das Formular ziehen (z. B. TextBox, CommandButton).
  3. Doppelklick auf eine Schaltfläche öffnet den Code-Bereich für deren Click-Ereignis.
  4. Formular aus einem Makro heraus öffnen mit UserForm1.Show.
Achtung

Solange ein UserForm angezeigt wird (Standardmodus modal), ist die Excel-Oberfläche dahinter blockiert. Für nicht-blockierende Formulare wird die Eigenschaft Show vbModeless benötigt – dann kann der Nutzer parallel weiter in der Tabelle arbeiten.

Häufige Fehler


Verwandte Themen