Kontakt

Nutzen Sie dieses Kontaktformular oder schreiben Sie mir direkt per E-Mail.

MsgBox – Excel VBA kompakt erklärt

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.

KonstanteZahlBeschreibungBeispiel
vbOKOnly0Nur Schaltfläche OKMeldungsfenster mit OK-Schaltfläche und Text.
vbOKCancel1Schaltflächen OK und AbbrechenMeldungsfenster mit Schaltflächen OK und Abbrechen sowie einem Text.
vbAbortRetryIgnore 2Schaltflächen Beenden, Wiederholen und IgnorierenMeldungsfenster, welches die Schaltflächen Beenden, Wiederholen und Ignorieren sowie einen Text anzeigt.
vbYesNoCancel3Schaltflächen Ja, Nein und AbbrechenMeldungsfenster mit den Schaltflächen Ja, Nein und Abbrechen sowie einer Frage.
vbYesNo4 Schaltflächen Ja und Nein Meldungsfenster mit den Schaltflächen Ja und Nein sowie einer Frage.
vbCritical16Meldungsfenster erscheint als FehlermeldungMeldungsfenster, das als Fehlermeldung mit einem großen roten X erscheint und den Text "Fehler" ausgibt.
vbExclamation48Meldungsfenster erscheint als WarnmeldungMeldungsfenster, das als Warnmeldung erscheint und ein großes Ausrufungszeichen beinhaltet. Es enthält den Text "Achtung!".
vbInformation64Meldungsfenster erscheint als InfomeldungMeldungsfenster, das als Infomeldung erscheint ein großes "i"-Symbol zeigt. Es enthält den Text "Hallo Welt"

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.

Meldungsfenster mit dem Text "Hier steht der Titel" in der Titelleiste, einer beliebigen Meldung und einer OK-Schaltfläche
Meldungsfenster mit Titel

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

Jan Trummel am Flipchart und erklärt zwei Seminarteilnehmern etwas in Excel.
Jan Trummel im Seminar

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!