VBS MsgBox

Inhaltsverzeichnis
VBS MsgBox – Visual Basic Script MsgBox
Du möchtest eine VBS MsgBox (Visual Basic Script MessageBox) anzeigen und dem Nutzer z. B. eine Nachricht o. Ä. mitteilen?
Dann freue ich mich, Dich hier auf meiner Seite, bzw. in meinem kleinen Beitrag begrüßen zu dürfen.
Die Nachrichtenbox (engl. Messagebox) ist in so gut wie allen mir bekannten Programmier– und Skriptsprachen präsent.
Sie ist zwar nicht immer gleich umgesetzt, aber zumindest in irgendeiner Form vorhanden.
Man möchte als Entwickler ja auch verständlicherweise nicht ohne Basis-Werkzeug dastehen.
++ UPDATE 25.01.2022 ++
Ich habe nach einiger Zeit noch weitere Bildchen zur besseren Veranschaulichung hinzugefügt.
Ebenso habe ich ein Fazit ergänzt und noch ein paar Erklärungen besser ausgeführt.
Man ist dann als Entwickler eben doch ein wenig pingelig!
Hintergrund – VBS MsgBox
Ein Dialog, Dialogfeld, Dialogfenster oder auch eine Dialogbox sind alles letztendlich Synonyme für das Gleiche.
Es handelt sich um eine Art, bzw. eine Methode, einem Nutzer eine Nachricht anzuzeigen.
Zusätzlich zu dieser angezeigten Nachricht, bietet der Dialog auch noch mehr.
Meist spiegelt sich das in einer Art Erwartung, in Form einer Antwort „an das Programm“ wider.
Einfache und komplexe Möglichkeiten
Wie so oft in der Programmierung, bzw. beim Scripting gibt es verschiedene Möglichkeiten.
Dabei ist auch die „MsgBox“ keine Ausnahme, also wie man einen Dialog aufbauen kann.
Vom simplen „OK“-Nachrichten-Dialog, wo man nur etwas Informatives mitteilen möchte, bis hin zu komplexen Formularen mit Eingabefeldern und verschiedenen Knöpfen.
Auch wenn wir uns in diesem Tutorial auf die simple MsgBox-Methode von Visual Basic Script beziehen, lohnt es sich, auch mal links und rechts zu schauen.
Modal oder nicht modal

Meistens sind Dialoge modal, das heißt, sie sperren den Rest der Anwendung, um den Fokus eben nur auf Sie selbst zu legen.
Andererseits gibt es auch non-modale Dialog, Diese erlauben weiterhin den Zugriff auf den Rest der Anwendung.
Ein konkretes, Beispiel für einen non-modalen Dialoge wäre z. B. ein Eingabefenster für einen Termin.
Stil und Aufbau
Meistens folgen bekannte Tools zum Erstellen solcher Dialoge gängigen „GUI-Standards„.
Damit finden sich Nutzer einfacher durch eine vertraute Umgebung zurecht.
In der Mitte des Dialoges befinden sich meistens die beschrifteten Eingabefelder.
Diese werden häufig durch Designer-Toolkits zusammengeklickt und korrekt angeordnet.
Unten rechts befinden sich dann zumeist die primären Aktionen, wie das Bestätigen, oder das Abbrechen des jeweiligen Dialoges.
Bekannte Dialoge
Als PC-Nutzer kennt man vermutlich schon viele Dialoge, ohne Diese bewusst als Solche zu sehen, hier einige Beispiele:
- Meldungen – Wie Diese aus unserem Beitrag hier, Welche Informationen anzeigen und Kombinationen von Buttons verwenden.
- Texteingabedialoge – Simple Dialoge, Welche meist nur einen simplen Text entgegennehmen.
- Datums-Dialoge – Dialog zur Auswahl von einzelnen Daten (plural Datum), oder Zeiträumen.
- Dateiauswahldialoge – Ein Dialog zur Auswahl von Dateien, oder Verzeichnissen.
- Farbauswahldialoge – Dialoge, Welche die Auswahl einzelnen, bzw. mehrere Farben anbieten.
Code – VBS MsgBox
Schauen wir uns nach den einzelnen Erklärungen und Beispielen nun ein konkretes „Visual Basic Script“-Beispiel für eine MsgBox an:
Syntax – Schreibweise
Die allgemeine Schreibweise – praktisch also die Syntax – sieht wie folgt aus:
MsgBox <TextDerBox>, <KonstantenFürButtons>, <TitelDerBox>
Simples Beispiel
MsgBox "Eine beliebige Nachricht", VBOKOnly, "Der Titel"
Dieses simple Beispiel sieht ausgeführt wie gleich folgend aus.
Man bekommt einen Dialog mit dem gewünschten Titel, dem gewählten Inhalt und dem „OK“-Button angezeigt.

Als Kurzform
Als Kurzform mit ausgelassenen optionalen Parametern wie „Buttons“ und „Title“, sieht das Beispiel wie gleich folgend aus.
Dies ist natürlich die einfachste und bekannteste Variante, um die Nachricht anzuzeigen.
Ohne viel „Plim-Plam“, kommen wir zum Ergebnis, jedoch verzichten wir somit auch auf weitere Funktionalität.
MsgBox "Eine beliebige Nachricht"
Beispiel mit mehreren Buttons
I dem nächsten Beispiel verwenden wir den „OR-Operator„, um zwei verschiedene Konstanten miteinander zu „verodern„.
Somit können wir mehrere Informationen auf einmal übergeben und den Dialog besser gestalten.
Ebenso kommen dadurch nun auch zwei Buttons statt Einem zum Einsatz, toll, oder!?
Hier wäre der Code:
MsgBox "Eine beliebige Nachricht", vbYesNo OR vbQuestion, "Der Titel"
Und so sieht das Ganze dann als fertige Messagebox aus:

Ergebnis abfragen
Um das Ergebnis einer MsgBox abzufragen, kannst Du beispielsweise wie folgt vorgehen.
Im ersten Schritt deklarieren wir eine Variable, um den gleich folgenden Wert zu speichern.
Danach rufen wir die „MsgBox„-Funktion selbst auf und verwenden dafür passende Parameter.
Darunter befinden sich dann die Informationen, dass wir gerne „Ja„, „nein“ und ein passendes Symbol sehen möchten.
Im letzten Schritt werten wir dann die Antwort, also das Ergebnis der Abfrage aus.
Falls die „VBS MsgBox“ mit „ja“ beantwortet wurde, also „vbYes“ als Rückgabewert kommt, zeigen wir eine weitere Nachricht an.
Dim x x = MsgBox ("Eine beliebige Nachricht", vbYesNo OR vbQuestion, "Der Titel") If x = vbYes Then MsgBox "Es wurde JA gedrückt!"
In der folgenden Tabelle findest Du die möglichen Button–Konstanten der MsgBox-Funktion aus Visual Basic Script.
Konstante | Wert | Beschreibung |
vbOKOnly | 0 | Nur „OK“ wird angezeigt |
vbOKCancel | 1 | „OK“ und „Abbrechen“ werden angezeigt |
vbAbortRetryIgnore | 2 | „Abbrechen“, „Wiederholen“ und „Ignorieren“ werden angezeigt |
vbYesNoCancel | 3 | „Ja“, „Nein“ und „Abbrechen“ werden angezeigt |
vbYesNo | 4 | „Ja“ und „Nein“ werden angzeigt |
vbRetryCancel | 5 | „Wiederholen“ und „Abbrechen“ werden angezeigt |
vbCritical | 16 | Ein roter Kreis inkl. weißes Kreuz mit Windows-Error Sound werden dargestellt |
vbQuestion | 32 | Eine Sprechblase mit Ausrufezeichen und dem nachfragenden Windows-Sound werden dargestellt |
vbExclamation | 48 | Ein gelbes Warndreieck und der Windows-Sound „Warnung“ wird dargestellt |
vbInformation | 64 | Eine Sprechblase mit Ausrufezeichen wird dargestellt und der Benachrichtigungs-Sound abgespielt |
vbDefaultButton1 | 0 | Der erste Knopf ist bei Darstellung selektiert |
vbDefaultButton2 | 256 | Der zweite Knopf ist bei Anzeige selektiert |
vbDefaultButton3 | 512 | Der dritte Knopf ist bei Darstellung selektiert |
vbDefaultButton4 | 768 | Der vierte Knopf ist bei Anzeige selektiert |
vbApplicationModal | 0 | Ein Flag um den Dialog als modalen Dialog zu kennzeichnen |
vbSystemModal | 4096 | Unterbricht weitere System-Prozesse bis MsgBox beantwortet wurde |
vbMsgBoxHelpButton | 16384 | Fügt einen Hilfs-Button zur Box hinzu |
VbMsgBoxSetForeground | 65536 | Lässt das Dialogfeld in den Vordergrund rücken |
vbMsgBoxRight | 524288 | Der Text wird rechtsbündig dargestellt |
vbMsgBoxRtlReading | 1048576 | Lässt den Text von rechts nach links dargestellt werden |
Rückgabewert der VBS MsgBox
Hier findest Du eine kleine Tabelle, Welche die einzelnen Rückgabewerte der Messagebox aufschlüsselt.
Konstante | Wert | Button |
vbOK | 1 | OK |
vbCancel | 2 | Abbrechen |
vbAbort | 3 | Abbrechen |
vbRetry | 4 | Wiederholen |
vbIgnore | 5 | Ignorieren |
vbYes | 6 | Ja |
vbNo | 7 | Nein |
Fazit
Wie eingangs erwähnt, ist die Messagebox ein absolutes „Basic Tool“ im Bereich der Softwareentwicklung.
Auf Grund dessen, hat auch die Skriptsprache Visual Basic Script (kurz VBS) sich nicht lumpen lassen.
Wir finden in VBS die Möglichkeit, eine Nachrichtenbox mit dem kurzen Befehl „MsgBox“ anzeigen zu lassen.
Dabei haben wir verschiedene Ansätze, die „MsgBox“ anzeigen zu lassen.
Wir können aus verschiedenen Knöpfen/Kombinationen wählen und mit den unterschiedlichen Rückgabewerten arbeiten.
Für komplexere Eingaben, wie z. B. eine Adresse, oder ein Datum ist die „MsgBox“ allerdings nicht geeignet.