Home allgemeine VBA Texte Excel VBA Msgbox (Messagebox)
Excel VBA Msgbox (Messagebox) PDF Drucken E-Mail
Benutzerbewertung: / 578
SchwachPerfekt 
Geschrieben von: Marcus Rose   
Sonntag, 14. September 2008 um 13:22 Uhr

Es kommt vor, dass wir mittels Excel VBA eine Mitteilung auf den Bildschirm bringen wollen. Um das zu bewerkstelligen nutzen wir eine Messagebox (MsgBox). Allerdings müssen wir hier beachten, dass man diese auf zweierlei Arten einsetzen kann. Wie man mit der MsgBox arbeitet, dass werdet ihr in nachfolgendem Text erfahren.

 

Die erste Möglichkeit eine Messagebox zu nutzen ist, dass man mit dieser Texte, oder Ergebnisse, mitteilt. Zur Bestätigung, dass der Anwender diesen Text zur Kenntnis genommen hat, muss er einen OK - Schalter betätigen.

 

Das Erstellen einer solchen MsgBox ist kein großer Aufwand. Es reicht wenn wir

MsgBox "unser Text" oder MsgBox unsere_Variable

schreiben. Natürlich haben wir auch die Option diese Meldungen etwas anders zu gestalten. So können wir zum Beispiel festgelegte Symbole oder Schalter integrieren.

 

Die Syntax für eine Messagebox lautet:

MsgBox(prompt[, buttons] [, title] [, helpfile, context])

 

Bevor wir hier weiter machen möchte ich euch einmal auf etwas aufmerksam machen. Wenn ihr euch die Syntax anschaut so seht ihr zwischen MsgBox und prompt eine Klammer. Diese wird, wie wir im oberen Beispiel bereits sehen konnten, nicht immer gesetzt. Diese Klammern benötigen wir eigentlich nur wenn abgefragt werden soll welcher Schalter betätigt wurde. Für alle anderen Messageboxen sind diese überflüssig.

 

Bleiben wir also erst einmal beim Anwenden einer MsgBox ohne die Klammersetzung, denn die Bedienung ist, bis auf die Schalter, gleich.

 

Mit dem Parameter prompt meint man den Text, oder den Inhalt einer Variablen, welcher angezeigt werden soll. In dem Beispiel, welches ihr bereits weiter oben sehen konntet stand MsgBox "unser Text". Der Parameter prompt wäre also „unser Text". Wir können hier aber auch eine Variable, oder ein Mix aus Text und Variable wieder geben. Die folgenden Beispiele sollen das verdeutlichen:

 

Wiedergabe einer Variablen, definiert als Zahl:

 


Sub beispiel_msgbox1()
    Dim dblZahl As Double
    dblZahl = 235.23
    MsgBox dblZahl
End Sub

 

msgbox Beispiel 1

 

Wiedergabe einer Variablen, definiert als Text:

 


Sub beispiel_msgbox2()
    Dim strText As String
    strText = " Hallo !!!"
    MsgBox strText
End Sub

 

msgbox Beispiel 2 

 

Wiedergabe eines promt gemischt. Variable definiert als Zahl:

 


Sub beispiel_msgbox3()
    Dim dblZahl As Double
    dblZahl = 235.23
    MsgBox "Wiedergabe der Zahl " & dblZahl
End Sub

 

msgbox Beispiel 3 

 

Wiedergabe eines promt gemischt. Variable definiert als Text:

 


Sub beispiel_msgbox4()
    Dim strText As String
    strText = " wichtig !!!"
    MsgBox "Dieser Text ist " & strText
End Sub

 

Msgbox Beispiel 4 

 

Den Schalter buttons ist zwar mit weniger Bedeutung behaftet, wir werden ihn aber dennoch kurz besprechen. Der Grund ist: Man kann hier zwar verschiedene Schalter setzen … aber wie fragt man, mit dieser Art der Anwendung einer Msgbox, ab, welcher Schalter gedrückt wurde? Das ist hier nicht möglich! Man kann hier nur den Schalter vbOKonly nutzen. Wichtig ist aber, dass man nicht nur Schalter setzen kann. An dieser Stelle kommt es auf die Hinweise / Symbole an. Diese geben verschiedene Bilder und Töne der MsgBox wieder.
(Achtet  auf die 3 Auflistungen am Ende des Textes, denn mit diesen werdet ihr in Zukunft arbeiten.)

 

Diese 3 Tabellen haben alle die Überschriften „Wert", „Konstantenname" und „Beschreibung". Für den Schalter buttons benötigen wir den ersten oder den zweiten Bereich. Welchen Bereich ihr nutzt liegt an dem was ihr wirklich wollt. Aber Achtung!!! Hier ist, je nach Anwendung, mathematisches Grundwissen erforderlich! Keine Sorge – es geht nur darum dass man den Wert des Schalters mit dem Wert der Hinweise / Schalter addiert. Es handelt sich also maximal um 64 + 5. Dass schafft ihr ja wohl mit links, oder?

 

Wir benötigen für unser Vorhaben übrigens die Tabelle 1 und 3. Die Tabelle 1 nenne ich in diesem Zusammenhang nur, da sich dort eben der Schalter vbOKOnly wieder findet. Wir brauchen dieser Tabelle eigentlich keine Aufmerksamkeit schenken, denn der Schalter vbOKOnly besitzt ja den Wert 0.

 

Im folgenden Beispielcode weisen wir einer MsgBox den Schalter vbOKOnly und den Hinweis vbCritical zu:

 


Sub beispiel_msgbox5()
    Dim strText As String
    strText = " wichtig !!!"
    MsgBox "Dieser Text ist " & strText, vbOKOnly + vbCritical
End Sub

 

Msgbox Beispiel 5 

 

Das Pluszeichen könnten wir in diesem Fall als ein "und" deuten. Oder wir denken uns einfach, dass Microsoft VBA automatisch erkennt, welche Werte diesen beiden Begriffen zugeordnet ist und diese Werte selber aufaddiert. Da der Schalter vbOKOnly aber den Wert 0 besitzt würden die folgenden beiden Codes ausreichen:

 


Sub beispiel_msgbox6()
    Dim strText As String
    strText = " wichtig !!!"
    MsgBox "Dieser Text ist " & strText, vbCritical
End Sub

 

Msgbox Beispiel 6 

 


Sub beispiel_msgbox7()
    Dim strText As String
    strText = " wichtig !!!"
    MsgBox "Dieser Text ist " & strText, 16
End Sub

 

Msgbox Beispiel 7 

 

Beim letzten Beispiel können wir sehen, dass ich mir nicht die Mühe gemacht habe das Wort vbCritical auszuschreiben. Ich habe mir einfach die Tabelle 3 vorgenommen und habe den zugewiesenen Wert 16 dafür eingetragen.

 

Kommen wir zum nächsten Punkt der Syntax – dem Punkt title. Wenn wir bis jetzt unsere Beispiele aufgerufen haben, so stand im obigen blauen Bereich der Msgbox immer das Wort „Microsoft Excel". Mit dem title können wir das ändern. Ich möchte dass in diesem blauen Bereich „meine Ausgabe" steht. Bauen wir uns also ein Beispiel auf, welches unser Vorhaben bewerkstelligt:

 


Sub beispiel_msgbox8()
    Dim strText As String
    strText = " wichtig !!!"
    MsgBox "Dieser Text ist " & strText, 16, "meine Ausgabe"
End Sub

 

Msgbox Beispiel 8 

 

Wir können sehen, dass der title mit einem Komma getrennt und in Anführungszeichen hinter den Schalter geschrieben wird. Wie wir sehen ist hier kein großes know how von Nöten.

 

Der letzte Punkt [, helpfile, context] … den lasse ich hier mit voller Absicht weg. Diesen Punkt wird keiner von uns nutzen. Etwas mehr Informationen dazu findet ihr aber bei dem Thema Inputbox. 

 

Kommen wir nun zur der zweiten Art einer MessageBox - Anwendung. Diese Möglichkeit ist für uns sehr sinnvoll, da wir nun auch alle unsere Schalter - Variationen nutzen und abfragen können. Somit können wir nun allen unten aufgeführten Tabellen unsere Aufmerksamkeit schenken.Wichtig ist zu wissen, dass wir uns eine Variable zur Schalterabfrage deklarieren sollten. Diese Variable ermöglicht uns den Wert eines Schalters aufzunehmen, damit wir abfragen können welcher Schalter betätigt wurde. Hier ein Beispiel dazu: 

 


Sub beispiel_msgbox9()
    Dim byWert As Byte
    byWert = MsgBox("Bitte betätigen Sie den Schalter Abbrechen.", 1, "Schalterabfrage")
    If byWert = 2 Then
        MsgBox "Richtig - Sie haben den Abbrechen - Schalter gedrückt"
    ElseIf byWert = 1 Then
        MsgBox "Falsch - Das war der OK - Schalter"
    End If
End Sub

 

Msgbox Beispiel 9 

 

 

Wenn wir uns den Code anschauen sollte uns auffallen, das ich die MsgBox in beiden Variationen verwendet habe. In Zeile 3 übergeben wir den Wert des gedrückten Schalters an die Variable byWert. Mit der folgenden If - Then - Else Schleife vergleichen wir den vorgegebenen Wert des Schalters mit dem Inhalt der Variable. Nun folgen die Messageboxen wie wir sie bereits am Anfang dieses Textes kennen gelernt haben.

 

 

 

 Schalter:
 Wert Konstantenname Beschreibung
 0 vbOKOnly OK
 1 vbOKCancel OK - Abbrechen
 2 vbAbortRetry Wiederholen - Ignorieren
 3 vbYesNoCancel Ja - Nein - Abbrechen
 4 vbYesNo Ja - Nein
 5 vbRetryCancel Wiederholen - Abbrechen

 Abfrage Schalter
 Wert Konstantenname Beschreibung
 1 vbOK Klick auf OK
 2 vbCancel Klick auf Abbrechen
 3 vbAbort Klick auf Abbrechen
 4 vbRetry Klick auf Wiederholen
 5 vbIgnore Klick auf Ignorieren
 6 vbYes Klick auf Ja
 7 vbNo Klick auf Nein

 Hinweis / Signal
 WertKonstantenname  Beschreibung
 16 vbCritical Kritische Meldung
 32 vbQuestion Fragezeichen
 48 vbExclamation Warnung
 64 vbInformation Information
Zuletzt aktualisiert am Sonntag, 02. November 2008 um 12:09 Uhr
 
Copyright © 2017 ms-excel.eu. Alle Rechte vorbehalten.
 

Autoren - Login

Werbung

wichtige Links:
http://ms-excel.eu
Hier habt Ihr eine gute Excel Hilfe
Besucherstatistik
Besucher gesamt: 4.476.128
Besucher heute: 1.575
Besucher gestern: 1.981
Max. Besucher pro Tag: 4.488
gerade online: 16
max. online: 507
counter Statistiken