Mit der MsgBox geben Sie Ihrem VBA-Programm ein Sprachrohr, damit es mit dem Benutzer kommunizieren kann. Dieses Werkzeug bietet Ihnen einfache und dennoch vielseitige Möglichkeiten und stellt eine wichtige Technik im Handwerkszeug eines jeden Programmierers da.
Kurze Erläuterung
Mit der MsgBox erzeugen Sie ein Meldungsfenster. Diesem können Sie auf einfache Art und Weise das Aussehen einer Info-, Warn- oder Fehlermeldung geben. Sie können es verwenden, um vom Benutzer eine Entscheidung anzufordern oder ihm einfach nur etwas mitzuteilen.
Aufbau
Wenn Sie dem Benutzer lediglich eine Information mitteilen wollen, verwenden Sie die Schreibweise ohne Klammern.
MsgBox Prompt, [Buttons], [Title]
Wenn Sie dagegen eine Entscheidung vom Benutzer fordern (z.B. Ja oder Nein), benutzen Sie die Schreibweise mit Klammern. Die MsgBox müssen Sie dann einer Variablen zuweisen, damit die Entscheidung dort gespeichert werden kann.
Variable = MsgBox(Prompt, [Buttons], [Title])
Tipp: Mehr zur Verwendung der beiden Schreibweisen finden Sie weiter unten in diesem Artikel in den Beispielen.
Ausführliche Erklärungen
Das Argument Prompt
Hier schreiben Sie die Mitteilung, welche dem Benutzer angezeigt werden soll. Es handelt sich folglich um eine Zeichenfolge, welche maximal 1.024 Zeichen umfassen darf.
Tipp: Mit der Anweisung vbCrLf können Sie einen Zeilenumbruch in der Mitteilung erzeugen, damit kein zu langer Fließtext erzeugt wird.
Das Argument Buttons
Um das Aussehen des Meldungsfensters zu bestimmen, verwenden Sie eine der folgenden VBA-Konstanten. Diese bestimmen auch, welche Schaltflächen angezeigt werden.
Technisch gesehen, handelt es sich hierbei übrigens um eine Zahl.
Konstante | Zahl | Beschreibung | Beispiel |
---|---|---|---|
vbOKOnly | 0 | Nur Schaltfläche OK | ![]() |
vbOKCancel | 1 | Schaltflächen OK und Abbrechen | ![]() |
vbAbortRetryIgnore | 2 | Schaltflächen Beenden, Wiederholen und Ignorieren | ![]() |
vbYesNoCancel | 3 | Schaltflächen Ja, Nein und Abbrechen | ![]() |
vbYesNo | 4 | Schaltflächen Ja und Nein | ![]() |
vbCritical | 16 | Meldungsfenster erscheint als Fehlermeldung | ![]() |
vbExclamation | 48 | Meldungsfenster erscheint als Warnmeldung | ![]() |
vbInformation | 64 | Meldungsfenster erscheint als Infomeldung | ![]() |
Hinweis: Sie dürfen das Argument Buttons weglassen. Das Meldungsfenster wird Ihnen dann nur mit der Schaltfläche OK angezeigt.
Das Argument Title
Hier können Sie einen Text schreiben, der in der Titelleiste des Meldungsfensters angezeigt wird.
Den Titel können Sie aber auch weglassen, da er nicht eingegeben werden muss. In der aktuellen Version steht dann einfach nur Microsoft Excel in der Titelleiste.
Tipp: Benutzen Sie den Titel bei längeren Meldungen wie eine Überschrift. Auch beliebt ist, bei Fehlermeldungen die Fehlernummer im Titel anzugeben.

Beispiele für Schreibweise OHNE Klammern
Mit den folgenden Beispielen erzeugen Sie Meldungsfenster, die dem Benutzer lediglich eine Information mitteilen. Sie verlangen jedoch keine Entscheidung von ihm.
Sub Meldungsfenster() 'Schaltfläche OK MsgBox "Hallo Welt", vbOKOnly 'Fehlermeldung MsgBox "Fehler!", vbCritical 'Warnmeldung MsgBox "Warnung", vbExclamation 'Mit Titel (unter Auslassung des Arguments Buttons MsgBox "Hallo Welt", , "Hier steht der Titel" End Sub
Beispiele für Schreibweise MIT Klammern
In diesem Beispiel stellen Sie dem Benutzer eine Frage, die er mit Ja oder Nein beantworten kann. Er muss sich also entscheiden.
Die MsgBox gibt beim Klick auf eine der beiden Schaltflächen unterschiedliche Zahlen zurück. Ja erzeugt die 6, Nein die 7. Diese können Sie später z.B. in einer Verzweigung nutzen.
Zum Speichern des Rückgabewertes müssen Sie die Variable Entscheidung anlegen. Diese muss vom Typ Integer sein, da die MsgBox eine Ganzzahl dieses Datentyps zurück gibt. Der Inhalt der Variablen wird am Ende der Prozedur zur Kontrolle über eine MsgBox ohne Klammern ausgegeben.
Sub Meldungsfenster() Dim Entscheidung As Integer Entscheidung = MsgBox("Gefällt Ihnen Excel?", vbYesNo) MsgBox Entscheidung End Sub

Jetzt VBA lernen ohne Vorkenntnisse!
Sie wollen die VBA-Programmierung in Excel lernen und sicher beherrschen? Dann empfehle ich Ihnen meinen Kurs Excel VBA-Programmierung – Grundkurs. Einstieg in die VBA-Programmierung mit Excel ohne Vorwissen!