Excel VBA MsgBox (Nachrichtenbox) - Alles, was Sie wissen müssen!

In Excel VBA können Sie die MsgBox-Funktion verwenden, um ein Meldungsfeld anzuzeigen (wie unten gezeigt):

Eine MsgBox ist nichts anderes als ein Dialogfeld, mit dem Sie Ihre Benutzer informieren können, indem Sie eine benutzerdefinierte Nachricht anzeigen oder einige grundlegende Eingaben (wie Ja/Nein oder OK/Abbrechen) erhalten.

Während das Dialogfeld MsgBox angezeigt wird, wird Ihr VBA-Code angehalten. Sie müssen auf eine der Schaltflächen in der MsgBox klicken, um den verbleibenden VBA-Code auszuführen.

Hinweis: In diesem Tutorial werde ich die Wörter Nachrichtenbox und MsgBox austauschbar verwenden. Wenn Sie mit Excel VBA arbeiten, müssen Sie immer MsgBox.

Anatomie einer VBA MsgBox in Excel

Eine Messagebox besteht aus folgenden Teilen:

  1. Titel: Dies wird normalerweise verwendet, um anzuzeigen, worum es in der Meldungsbox geht. Wenn Sie nichts angeben, wird der Anwendungsname angezeigt – in diesem Fall Microsoft Excel.
  2. Prompt: Dies ist die Nachricht, die Sie anzeigen möchten. Sie können diesen Platz nutzen, um hier ein paar Zeilen zu schreiben oder sogar Tabellen/Daten anzuzeigen.
  3. Tasten): Obwohl OK die Standardschaltfläche ist, können Sie sie anpassen, um Schaltflächen wie Ja/Nein, Ja/Nein/Abbrechen, Wiederholen/Ignorieren usw. anzuzeigen.
  4. Schließen-Symbol: Sie können die Meldungsbox schließen, indem Sie auf das Schließen-Symbol klicken.

Syntax der VBA MsgBox-Funktion

Wie bereits erwähnt, ist MsgBox eine Funktion und hat eine ähnliche Syntax wie andere VBA-Funktionen.

MsgBox( Eingabeaufforderung [, Schaltflächen ] [, Titel] [, Hilfedatei, Kontext] )

  • prompt - Dies ist ein erforderliches Argument. Es zeigt die Nachricht an, die Sie in der MsgBox sehen. In unserem Beispiel ist der Text „Dies ist eine Beispiel-MsgBox“ die „Eingabeaufforderung“. Sie können bis zu 1024 Zeichen in der Eingabeaufforderung verwenden und sie auch verwenden, um die Werte von Variablen anzuzeigen. Falls Sie eine mehrzeilige Eingabeaufforderung anzeigen möchten, können Sie dies auch tun (mehr dazu später in diesem Tutorial).
  • [Tasten] - Es bestimmt, welche Schaltflächen und Symbole in der MsgBox angezeigt werden. Wenn ich beispielsweise vbOkOnly verwende, wird nur die Schaltfläche OK angezeigt, und wenn ich vbOKCancel verwende, werden sowohl die Schaltflächen OK als auch Abbrechen angezeigt. Ich werde später in diesem Tutorial verschiedene Arten von Schaltflächen behandeln.
  • [Titel] - Hier können Sie festlegen, welche Beschriftung Sie im Nachrichtendialog haben möchten. Diese wird in der Titelleiste der MsgBox angezeigt. Wenn Sie nichts angeben, wird der Name der Anwendung angezeigt.
  • [Hilfedatei] - Sie können eine Hilfedatei angeben, auf die zugegriffen werden kann, wenn ein Benutzer auf die Schaltfläche Hilfe klickt. Die Hilfeschaltfläche wird nur angezeigt, wenn Sie den Schaltflächencode dafür verwenden. Wenn Sie eine Hilfedatei verwenden, müssen Sie auch das Kontextargument angeben.
  • [Kontext] - Es handelt sich um einen numerischen Ausdruck, der die dem entsprechenden Hilfethema zugewiesene Hilfekontextnummer darstellt.

Wenn Sie mit dem Konzept von Msgbox noch nicht vertraut sind, können Sie die Argumente [helpfile] und [context] ignorieren. Ich habe selten gesehen, dass diese verwendet werden.

Hinweis: Alle Argumente in eckigen Klammern sind optional. Nur das Argument „prompt“ ist obligatorisch.

Excel VBA MsgBox-Schaltflächenkonstanten (Beispiele)

In diesem Abschnitt werde ich die verschiedenen Arten von Schaltflächen behandeln, die Sie mit einer VBA-MsgBox verwenden können.

Bevor ich Ihnen den VBA-Code dafür zeige und wie die MsgBox aussieht, ist hier eine Tabelle, die alle verschiedenen Schaltflächenkonstanten auflistet, die Sie verwenden können.

Tastenkonstante Beschreibung
vbOKOnly Zeigt nur die OK-Schaltfläche an
vbOKAbbrechen Zeigt die Schaltflächen OK und Abbrechen an
vbAbortRetryIgnorieren Zeigt die Schaltflächen Abbrechen, Wiederholen und Ignorieren an
vbJaNein Zeigt die Schaltflächen Ja und Nein an
vbJaNeinAbbrechen Zeigt die Schaltflächen Ja, Nein und Abbrechen an
vbRetryCancel Zeigt die Schaltflächen Wiederholen und Abbrechen an
vbMsgBoxHelpButton Zeigt die Schaltfläche Hilfe an. Damit dies funktioniert, müssen Sie die Hilfe- und Kontextargumente in der MsgBox-Funktion verwenden
vbDefaultButton1 Macht die erste Schaltfläche als Standard. Sie können die Nummer ändern, um die Standardschaltfläche zu ändern. Zum Beispiel macht vbDefaultButton2 die zweite Schaltfläche als Standard

Hinweis: Während Sie die Beispiele zum Erstellen verschiedener Schaltflächen durchgehen, fragen Sie sich vielleicht, welchen Sinn diese Schaltflächen haben, wenn sie keine Auswirkungen auf den Code haben.

Es tut! Basierend auf der Auswahl können Sie codieren, was der Code tun soll. Wenn Sie beispielsweise OK auswählen, sollte der Code fortgesetzt werden, und wenn Sie auf Abbrechen klicken, sollte der Code beendet werden. Dies kann durch die Verwendung von Variablen und das Zuweisen des Wertes der Message Box zu einer Variablen erfolgen. Wir werden dies in den späteren Abschnitten dieses Tutorials behandeln.

Schauen wir uns nun einige Beispiele an, wie die verschiedenen Schaltflächen in einer MsgBox dargestellt werden können und wie sie aussieht.

MsgBox-Schaltflächen - vbOKOnly (Standard)

Wenn Sie nur die Eingabeaufforderung verwenden und keines der Argumente angeben, erhalten Sie das Standardnachrichtenfeld wie unten gezeigt:

Unten ist der Code, der dieses Meldungsfeld ausgibt:

Sub DefaultMsgBox() MsgBox "Dies ist eine Musterbox" End Sub

Beachten Sie, dass die Textzeichenfolge in doppelten Anführungszeichen stehen muss.

Sie können auch die Schaltflächenkonstante vbOKOnly verwenden, aber selbst wenn Sie nichts angeben, wird sie als Standard verwendet.

MsgBox-Schaltflächen - OK & Abbrechen

Wenn Sie nur die Schaltflächen OK und Abbrechen anzeigen möchten, müssen Sie die Konstante vbOKCancel verwenden.

Sub MsgBoxOKCancel() MsgBox "Möchten Sie fortfahren?", vbOKCancel End Sub

MsgBox-Schaltflächen - Abbrechen, Wiederholen und Ignorieren

Sie können die Konstante „vbAbortRetryIgnore“ verwenden, um die Schaltflächen Abort, Retry und Ignore anzuzeigen.

Sub MsgBoxAbortRetryIgnore() MsgBox "Was möchten Sie tun?", vbAbortRetryIgnore End Sub

MsgBox-Schaltflächen - Ja und Nein

Sie können die Konstante „vbYesNo“ verwenden, um die Schaltflächen Ja und Nein anzuzeigen.

Sub MsgBoxYesNo() MsgBox "Sollen wir aufhören?", vbYesNo End Sub

MsgBox-Schaltflächen - Ja, Nein und Abbrechen

Sie können die Konstante „vbYesNoCancel“ verwenden, um die Schaltflächen Ja, Nein und Abbrechen anzuzeigen.

Sub MsgBoxYesNoCancel() MsgBox "Sollen wir aufhören?", vbYesNoCancel End Sub

MsgBox-Schaltflächen - Wiederholen und Abbrechen

Sie können die Konstante „vbRetryCancel“ verwenden, um die Schaltflächen „Wiederholen“ und „Abbrechen“ anzuzeigen.

Sub MsgBoxRetryCancel() MsgBox "Was möchten Sie als nächstes tun?", vbRetryCancel End Sub

MsgBox-Schaltflächen - Hilfe-Schaltfläche

Sie können die Konstante „vbMsgBoxHelpButton“ verwenden, um die Hilfeschaltfläche anzuzeigen. Sie können es mit anderen Schaltflächenkonstanten verwenden.

Sub MsgBoxRetryHelp() MsgBox "Was möchten Sie als nächstes tun?", vbRetryCancel + vbMsgBoxHelpButton End Sub

Beachten Sie, dass wir in diesem Code zwei verschiedene Schaltflächenkonstanten kombiniert haben (vbRetryCancel + vbMsgBoxHelpButton). Der erste Teil zeigt die Schaltflächen Wiederholen und Abbrechen und der zweite Teil zeigt die Schaltfläche Hilfe.

MsgBox-Schaltflächen - Festlegen einer Standardschaltfläche

Sie können die Konstante „vbDefaultButton1“ verwenden, um die erste Schaltfläche als Standard festzulegen. Dies bedeutet, dass die Schaltfläche bereits ausgewählt ist und wenn Sie die Eingabetaste drücken, wird diese Schaltfläche ausgeführt.

Unten ist der Code, der die zweite Schaltfläche (die Schaltfläche "Nein") als Standard festlegt.

Sub MsgBoxOKCancel() MsgBox "Was möchten Sie als nächstes tun?", vbYesNoCancel + vbDefaultButton2 End Sub

In den meisten Fällen ist die Schaltfläche ganz links die Standardschaltfläche. Sie können andere Schaltflächen mit vbDefaultButton2, vbDefaultButton3 und vbDefaultButton4 auswählen.

Excel VBA MsgBox Symbolkonstanten (Beispiele)

Abgesehen von den Schaltflächen können Sie auch die Symbole anpassen, die im Dialogfeld MsgBox angezeigt werden. Sie können beispielsweise ein rotes kritisches Symbol oder ein blaues Informationssymbol haben.

Unten ist eine Tabelle, die den Code auflistet, der das entsprechende Symbol anzeigt.

Symbolkonstante Beschreibung
vbCritical Zeigt das Symbol für kritische Nachrichten an
vbFrage Zeigt das Fragesymbol an
vbExclamation Zeigt das Warnmeldungssymbol an
vbInformationen Zeigt das Informationssymbol an

MsgBox-Symbole - Kritisch

Wenn Sie ein kritisches Symbol in Ihrer MsgBox anzeigen möchten, verwenden Sie die vbCritical-Konstante. Sie können dies zusammen mit anderen Schaltflächenkonstanten verwenden (indem Sie ein +-Zeichen zwischen den Codes einfügen).

Unten ist beispielsweise ein Code, der die standardmäßige OK-Schaltfläche mit einem kritischen Symbol anzeigt.

Sub MsgBoxCriticalIcon() MsgBox "Dies ist eine Beispielbox", vbCritical End Sub

Wenn Sie das kritische Symbol mit den Schaltflächen Ja und Nein anzeigen möchten, verwenden Sie den folgenden Code:

Sub MsgBoxCriticalIcon() MsgBox "Dies ist eine Beispielbox", vbYesNo + vbCritical End Sub

MsgBox-Symbole - Frage

Wenn Sie ein kritisches Symbol in Ihrer MsgBox anzeigen möchten, verwenden Sie die vbQuestion-Konstante.

Sub MsgBoxQuestionIcon() MsgBox "Dies ist eine Beispielbox", vbYesNo + vbQuestion End Sub

MsgBox-Symbole - Ausrufezeichen

Wenn Sie in Ihrer MsgBox ein Ausrufezeichen anzeigen möchten, verwenden Sie die Konstante vbExclamation.

Sub MsgBoxExclamationIcon() MsgBox "Dies ist eine Beispielbox", vbYesNo + vbExclamation End Sub

MsgBox-Symbole - Informationen

Wenn Sie in Ihrer MsgBox ein Informationssymbol anzeigen möchten, verwenden Sie die Konstante vbInformation.

Sub MsgBoxInformationIcon() MsgBox "Dies ist eine Beispielbox", vbYesNo + vbInformation End Sub

Anpassen von Titel und Aufforderung in der MsgBox

Wenn Sie MsgBox verwenden, können Sie den Titel und die Aufforderungsnachrichten anpassen.

Bisher wurde in dem Beispiel, das wir gesehen haben, Microsoft Excel als Titel verwendet. Falls Sie das Titelargument nicht angeben, verwendet MsgBox automatisch den Titel der Anwendung (in diesem Fall Microsoft Excel).

Sie können den Titel anpassen, indem Sie ihn wie unten gezeigt im Code angeben:

Sub MsgBoxInformationIcon() MsgBox "Möchten Sie fortfahren?", vbYesNo + vbQuestion, "Schritt 1 von 3" End Sub

Ebenso können Sie die Aufforderungsnachricht anpassen.

Sie können der Eingabeaufforderung auch Zeilenumbrüche hinzufügen.

Im folgenden Code habe ich mit ‚vbNewLine‘ einen Zeilenumbruch hinzugefügt.

Sub MsgBoxInformationIcon() MsgBox "Möchten Sie fortfahren?" & vbNewLine & "Klicken Sie auf Ja, um fortzufahren", vbYesNo + vbQuestion, "Schritt 1 von 3" End Sub

Sie können auch das Wagenrücklaufzeichen - Chr(13) - oder den Zeilenvorschub - Chr(10) verwenden, um eine neue Zeile in die Eingabeaufforderung einzufügen.

Beachten Sie, dass Sie nur der Aufforderungsnachricht und nicht dem Titel eine neue Zeile hinzufügen können.

Zuweisen eines MsgBox-Werts zu einer Variablen

Bisher haben wir die Beispiele gesehen, in denen wir Meldungsfelder erstellt und die Schaltflächen, Symbole, Titel und Eingabeaufforderungen angepasst haben.

Das Klicken auf eine Schaltfläche hat jedoch nichts bewirkt.

Mit der MsgBox-Funktion in Excel können Sie entscheiden, was Sie tun möchten, wenn ein Benutzer auf eine bestimmte Schaltfläche klickt. Dies ist möglich, da jeder Schaltfläche ein Wert zugeordnet ist.

Wenn ich also auf die Schaltfläche Yes klicke, gibt die MsgBox-Funktion einen Wert zurück (6 oder die Konstante vbYes), den ich in meinem Code verwenden kann. Wenn der Benutzer die Schaltfläche Nein auswählt, wird ein anderer Wert ((7 oder die Konstante vbNo)) zurückgegeben, den ich im Code verwenden kann.

Unten finden Sie eine Tabelle mit den genauen Werten und der von der MsgBox-Funktion zurückgegebenen Konstante. Sie müssen sich diese nicht merken, beachten Sie es nur und Sie können die Konstanten verwenden, die einfacher zu verwenden sind.

Schaltfläche angeklickt Konstante Wert
Okay vbOk 1
Stornieren vbAbbrechen 2
Abbrechen vbAbort 3
Wiederholen vbWiederholen 4
Ignorieren vbIgnorieren 5
Jawohl vbJa 6
Nein vbNein 7

Sehen wir uns nun an, wie wir den VBA-Makrocode basierend darauf steuern können, auf welche Schaltfläche ein Benutzer klickt.

Wenn der Benutzer im folgenden Code auf Ja klickt, wird die Meldung "Sie haben auf Ja geklickt" angezeigt, und wenn der Benutzer auf Nein klickt, wird "Sie haben auf Nein geklickt" angezeigt.

Sub MsgBoxInformationIcon() Ergebnis = MsgBox("Möchten Sie fortfahren?", vbYesNo + vbQuestion) If Result = vbYes Then MsgBox "Sie haben auf Ja geklickt" Else: MsgBox "Sie haben auf Nein geklickt" End If End Sub

Im obigen Code habe ich der Ergebnisvariablen den Wert der MsgBox-Funktion zugewiesen. Wenn Sie auf die Schaltfläche Ja klicken, erhält die Variable Ergebnis die Konstante vbYes (oder die Zahl 6) und wenn Sie auf Nein klicken, erhält die Variable Ergebnis die Konstante vbNo (oder die Zahl 7).

Dann habe ich ein If Then Else-Konstrukt verwendet, um zu überprüfen, ob die Result-Variable den Wert vbYes enthält. Wenn dies der Fall ist, wird die Meldung „Sie haben auf Ja geklickt“ angezeigt, andernfalls wird „Sie auf Nein geklickt“ angezeigt.

Sie können dasselbe Konzept verwenden, um einen Code auszuführen, wenn ein Benutzer auf Ja klickt, und das Untermenü zu verlassen, wenn er auf Nein klickt.

Hinweis: Wenn Sie die MsgBox-Ausgabe einer Variablen zuweisen, müssen Sie die Argumente der MsgBox-Funktion in Klammern setzen. Zum Beispiel in der Zeile Ergebnis = MsgBox("Möchten Sie fortfahren?", vbJaNein + vbFrage), sehen Sie, dass die Argumente in Klammern stehen.

Wenn Sie sich weiter mit der Message Box-Funktion befassen möchten, finden Sie hier das offizielle Dokument dazu.

Möglicherweise gefallen Ihnen auch die folgenden Excel VBA-Tutorials:

  • Excel VBA-Split-Funktion.
  • Excel VBA InStr-Funktion.
  • Arbeiten mit Zellen und Bereichen in Excel VBA.
  • Arbeiten mit Arbeitsblättern in VBA.
  • Arbeiten mit Arbeitsmappen in VBA.
  • Verwenden von Schleifen in Excel VBA.
  • Grundlegendes zu Excel VBA-Datentypen (Variablen und Konstanten)
  • So erstellen und verwenden Sie eine persönliche Makroarbeitsmappe in Excel.
  • Nützliche Excel-Makrocodebeispiele.
  • Verwenden von For Next Loop in Excel VBA.
  • Excel VBA-Ereignisse - Eine einfache (und vollständige) Anleitung.
  • So führen Sie ein Makro in Excel aus - Eine vollständige Schritt-für-Schritt-Anleitung.
  • So erstellen und verwenden Sie ein Excel-Add-In.

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave