VBS MsgBox – Nachrichten in 2023 anzeigen
Inhaltsverzeichnis
VBS MsgBox – Visual Basic Script MsgBox
Du möchtest eine VBS MsgBox (Visual Basic Script MessageBox) anzeigen und dem Nutzer 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 gängigen 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, oder?
++ UPDATE 05.08.2022 ++
So, ein paar weitere Monate sind vergangen und ich habe noch ein wenig nachgearbeitet. Unter anderem habe ich die Texte ein wenig verbessert und weitere Informationen ergänzt. Besonders gestört hat mich im Nachhinein auch die Formatierung, daher ist Diese auch geändert worden.
++ 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 häufig 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 sich 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.
So kann ich einerseits in meiner Haupt-Anwendung arbeiten, jedoch gleichzeitig schonmal gewisse Daten für einen Termin ausfüllen. Ebenso erlaubt es mir, mehrere Termine gleichzeitig anzulegen und eventuell fehlende Informationen zu recherchieren. Ich würde daher sagen, die non-modale Variante ist somit Multitasking-freundlicher.
Möchte ich meinen Nutzer hingegen auf einen Inhalt fokussiert halten und vermeiden, dass kreuz und quer gesprungen wird, dann ist vermutlich die modale Variante vorzuziehen.
Stil und Aufbau
Meistens folgen bekannte Tools zum Erstellen solcher Dialoge gängigen Designstandards. Damit finden sich Nutzer einfacher durch eine Art vertraute Umgebung zurecht. In der Mitte des Dialoges befinden sich üblicherweise die beschrifteten Eingabefelder inkl. Bezeichnungen.
Diese werden häufig mit Hilfe von Designer-Toolkits zusammengeklickt und korrekt angeordnet. Unten rechts befinden sich dann zumeist die primären Aktionen, wie z. B. das Bestätigen, oder das Abbrechen des jeweiligen Dialoges.
Hat der Nutzer letztendlich alles fertig bearbeitet und den Dialog geschlossen, geht es in dem jeweiligen anderen Teil der Anwendung weiter.
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 nun ein konkretes „Visual Basic Script“-Beispiel für eine MsgBox an.
Syntax – Schreibweise
Die allgemeine Schreibweise für den Aufruf einer VBS MsgBox sieht wie folgt aus. Zuerst kommt der Befehl selbst, danach der Text für die Nachrichtenbox. Anschließend kann man Konstanten für die Darstellung verschiedener Buttons bestimmen. Zum Schluss kann man dann noch den Titel des erscheinenden Fensters bestimmen.
' grober Aufbau MsgBox <TextDerBox>, <KonstantenFürButtons>, <TitelDerBox>
Simples Beispiel
' 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 offensichtlich 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
Im 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!"
Button-Konstanten
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 – VBS MsgBox
Wie eingangs erwähnt, ist die Messagebox ein absolutes „Basic Tool“ im Bereich der Softwareentwicklung. Aufgrund 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.