MessageBox | Herbers Excel Dialoge (2024)

Die sehr simpel erscheinende MessageBox hat bei näherer Betrachtung einiges an Möglichkeiten zu bieten. Hier ein ganz normalerMessageBox-Aufruf:

Abbildung - Einfache MessageBox
MessageBox | Herbers Excel Dialoge (1)

An benannten Argumenten können dem Messagebox-Aufruf mitgegeben werden:

ArgumentBeschreibungStatusVoreinstellung
promptDie anzuzeigende MeldungNotwendig
buttonsDie anzuzeigenden Schaltflächen, das anzuzeigende Symbol, die Bindung und die Vorgabe der StandardschaltflächeOptionalOK
titleDer Text in der blauen Kopfzeile der MeldungOptional
helpfileDer Dateiname mit Pfad der aufzurufenden HilfedateiOptional
contextDie Context-Nummer, mit der auf die Hilfedatei zugegriffen wirdOptional

Klicken Sie in der nachfolgenden Tabelle auf die jeweilige Konstante und es wird ein Beispiel für deren Einsatz im MessageBox-Codeangezeigt:

KonstanteWertBeschreibung
vbOKOnly0Nur die Schaltfläche OK anzeigen.
vbOKCancel1Schaltflächen OK und Abbrechen anzeigen.
vbAbortRetryIgnore2Schaltflächen Abbruch, Wiederholen und Ignorieren anzeigen.
VbYesNoCancel3Schaltflächen Ja, Nein und Abbrechen anzeigen.
VbYesNo4Schaltflächen Ja und Nein anzeigen.
VbRetryCancel5Schaltflächen Wiederholen und Abbrechen anzeigen.
VbCritical16Meldung mit Stop-Symbol anzeigen.
VbQuestion32Meldung mit Fragezeichen-Symbol anzeigen.
VbExclamation48Meldung mit Ausrufezeichen-Symbol anzeigen.
VbInformation64Meldung mit Info-Symbol anzeigen.
VbDefaultButton10Erste Schaltfläche ist Standardschaltfläche.
VbDefaultButton2256Zweite Schaltfläche ist Standardschaltfläche.
VbDefaultButton3512Dritte Schaltfläche ist Standardschaltfläche.
VbDefaultButton4768Vierte Schaltfläche ist Standardschaltfläche.
VbApplicationModal0An die Anwendung gebunden. Der Benutzer muß auf das Meldungsfeld reagieren, bevor er seine Arbeit mit der aktuellen Anwendung fortsetzen kann.
VbSystemModal4096An das System gebunden. Alle Anwendungen werden unterbrochen, bis der Benutzer auf das Meldungsfeld reagiert.
vbMsgBoxHelpButton16384Fügt der MessageBox eine Hilfe-Schaltfläche hinzu
VbMsgBoxSetForeground65536Platziert die MessageBox im Vordergrund
vbMsgBoxRight524288Der Text wird linksbündig ausgerichtet
vbMsgBoxRtlReading1048576Legt die Schreibrichtung des Textes von links nach rechts für arabisches und jüdisches System fest

Die erste Gruppe von Werten (0-5) beschreibt die Anzahl und den Typ der im Dialogfeld angezeigten Schaltflächen. Die zweite Gruppe (16, 32, 48, 64) beschreibt die Symbolart. Die dritte Gruppe (0, 256, 512) legt die Standardschaltfläche fest. Die vierte Gruppe (0, 4096) legt fest, in welcher Form das Dialogfeld gebunden ist. Verwenden Sie beim Addieren der Zahlen zu einem Gesamtwert für das Argument buttons nur eine Zahl aus jeder Gruppe.

AnmerkungDiese Konstanten sind durch Visual Basic für Applikationen festgelegt. Daher können die Namen an einer beliebigen Stelle im Code anstelle der tatsächlichen Werte verwendet werden.

Rückgabewerte

KonstanteWertBeschreibung
vbOK1OK
vbCancel2Abbrechen
vbAbort3Abbruch
vbRetry4Wiederholen
vbIgnore5Ignorieren
vbYes6Ja
vbNo7Nein

Die Schaltflächen

Konstante vbOkOnly

Sub MeldungA() Dim iClick As Integer iClick = MsgBox( _ prompt:="Meldung aus Excel!", _ Buttons:=vbOKOnly) MsgBox "Rückgabewert: " & iClickEnd Sub

Der Dialog wird mit OK beendet:

MeldungRückgabewert
Abbildung - Meldung vbOkOnly
MessageBox | Herbers Excel Dialoge (2)
Abbildung - Rückgabewert vbOkOnly
MessageBox | Herbers Excel Dialoge (3)

Konstante vbOkCancel

Sub MeldungB() Dim iClick As Integer iClick = MsgBox( _ prompt:="OK oder abbrechen?", _ Buttons:=vbOKCancel) If iClick = vbOK Then MsgBox "OK" Else MsgBox "Abbrechen" End IfEnd Sub

In der Prozedur wird in Abhängigkeit der angeklickten Schaltfläche verzweigt:

MeldungVerzweigung OKVerzweigung Abbrechen
Abbildung - Meldung vbOkCancel
MessageBox | Herbers Excel Dialoge (4)
Abbildung - Verzweigung OK
MessageBox | Herbers Excel Dialoge (5)
Abbildung - Verzweigung Abbrechen
MessageBox | Herbers Excel Dialoge (6)

Konstante VbAbortRetryIgnore

Sub MeldungC() Dim iClick As Integer iClick = 4 Do While iClick = 4 iClick = MsgBox( _ prompt:="Abbrechen, wiederholen oder ignorieren?", _ Buttons:=vbAbortRetryIgnore) If iClick = vbRetry Then MsgBox "Ich wiederhole!" ElseIf iClick = vbIgnore Then MsgBox "Ich ignoriere!" End If LoopEnd Sub

In der Prozedur wird in Abhängigkeit der angeklickten Schaltfläche verzweigt; bei Klick auf die Wiederholen-Schaltflächewird der vbAbortRetryIgnore-Dialog erneut aufgerufen:

MeldungVerzweigung WiederholenVerzweigung Ignorieren
Abbildung - Meldung VbAbortRetryIgnore
MessageBox | Herbers Excel Dialoge (7)
Abbildung - Verzweigung Wiederholen
MessageBox | Herbers Excel Dialoge (8)
Abbildung - Verzweigung Ignorieren
MessageBox | Herbers Excel Dialoge (9)

Konstante VbYesNoCancel

Sub MeldungD() Dim iClick As Integer iClick = MsgBox( _ prompt:="Ja, nein oder abbrechen?", _ Buttons:=vbYesNoCancel) If iClick = vbYes Then MsgBox "Ja" ElseIf iClick = vbNo Then MsgBox "Nein" ElseIf iClick = vbCancel Then MsgBox "Abbrechen" End IfEnd Sub

In der Prozedur werden in Abhängigkeit der geklickten Schaltfläche Werte zurückgeliefert, die weiterverarbeitet werden können:

MeldungRückgabewert JaRückgabewert NeinRückgabewert Abbrechen
Abbildung - Meldung VbJesNoCancel
MessageBox | Herbers Excel Dialoge (10)
Abbildung - Rückgabewert Ja
MessageBox | Herbers Excel Dialoge (11)
Abbildung - Rückgabewert Nein
MessageBox | Herbers Excel Dialoge (12)
Abbildung - Verzweigung Abbrechen
MessageBox | Herbers Excel Dialoge (13)

Konstante VbYesNo

Sub MeldungE() Dim iClick As Integer iClick = MsgBox( _ prompt:="Ja oder nein?", _ Buttons:=vbYesNo) If iClick = vbYes Then MsgBox "Ja" ElseIf iClick = vbNo Then MsgBox "Nein" End IfEnd Sub

In der Prozedur werden in Abhängigkeit der geklickten Schaltfläche Werte zurückgeliefert, die weiterverarbeitet werden können:

MeldungRückgabewert JaRückgabewert Nein
Abbildung - Meldung VbJesNo
MessageBox | Herbers Excel Dialoge (14)
Abbildung - Rückgabewert Ja
MessageBox | Herbers Excel Dialoge (15)
Abbildung - Rückgabewert Nein
MessageBox | Herbers Excel Dialoge (16)

Konstante VbRetryCancel

Sub MeldungF() Dim iClick As Integer iClick = 4 Do While iClick = 4 iClick = MsgBox( _ prompt:="Abbrechen oder wiederholen", _ Buttons:=vbRetryCancel) If iClick = vbRetry Then MsgBox "Ich wiederhole!" ElseIf iClick = vbCancel Then MsgBox "Abbrechen" End If LoopEnd Sub

In der Prozedur wird in Abhängigkeit der angeklickten Schaltfläche verzweigt; bei Klick auf die Wiederholen-Schaltflächewird der VbRetryCancel-Dialog erneut aufgerufen:

MeldungVerzweigung WiederholenVerzweigung Abbrechen
Abbildung - Meldung VbRetryCancel
MessageBox | Herbers Excel Dialoge (17)
Abbildung - Verzweigung Wiederholen
MessageBox | Herbers Excel Dialoge (18)
Abbildung - Verzweigung Abbrechen
MessageBox | Herbers Excel Dialoge (19)

Die Symbole

Konstanten VbCritical, VbQuestion, VbExclamation und VbInformation

Sub MeldungG() Dim iCounter As Integer For iCounter = 16 To 64 Step 16 MsgBox "Symbole", iCounter Next iCounterEnd Sub
VbCriticalVbQuestionVbExclamationVbInformation
Abbildung - Symbol VbCritical
MessageBox | Herbers Excel Dialoge (20)
Abbildung - Symbol VbQuestion
MessageBox | Herbers Excel Dialoge (21)
Abbildung - Symbol VbExclamation
MessageBox | Herbers Excel Dialoge (22)
Abbildung - Symbol VbInformation
MessageBox | Herbers Excel Dialoge (23)

Die Standardschaltflächen

Konstanten VbDefaultButton1, VbDefaultButton2, VbDefaultButton3 und VbDefaultButton4

Sub MeldungH() Dim iCounter As Integer, iMsg As Integer For iCounter = 0 To 512 Step 256 iMsg = iMsg + 1 MsgBox _ prompt:=iMsg & ". Schaltfläche ist Standardschaltfläche", _ Buttons:=iCounter + vbAbortRetryIgnore Next iCounterEnd Sub
VbDefaultButton1VbDefaultButton2VbDefaultButton3
Abbildung - VbDefaultButton1
MessageBox | Herbers Excel Dialoge (24)
Abbildung - VbDefaultButton2
MessageBox | Herbers Excel Dialoge (25)
Abbildung - VbDefaultButton3
MessageBox | Herbers Excel Dialoge (26)

Die Bindung und Position der Meldung

Konstante VbApplicationModal

Sub MeldungI() MsgBox "Hallo aus Excel", vbApplicationModalEnd Sub

Die MessageBox ist an Microsoft Excel gebunden. Sie können in anderen Anwendungen weiterarbeiten, ohne die nur in Excel sichtbareMessageBox zu schließen. Es handelt sich hier um die Voreinstellung.

Konstante VbSystemModal

Sub MeldungJ() MsgBox "Hallo aus Excel", vbSystemModalEnd Sub

Die MessageBox ist nicht an Microsoft Excel gebunden. Sie können in anderen Anwendungen nicht weiterarbeiten,ohne die auch in anderen Anwendungen sichtbare MessageBox zu schließen.

Konstante VbMsgBoxSetForeground

Sub MeldungK() MsgBox "Hallo aus Excel", VbMsgBoxSetForegroundEnd Sub

Die MessageBox wird im Vordergrund platziert. Dies gilt weder für andere Anwendungen noch für eine zweite Excel-Instanz.Ein unterschiedliches Verhalten zur Normaleinstellung konnte nicht festgestellt werden.

Konstante vbMsgBoxHelpButton

Sub MeldungL() Dim sTxt As String, sPrompt As String, sFile As String sFile = ThisWorkbook.Path & "\Kontext.chm" If Dir(sFile) = "" Then Beep MsgBox "Hilfedatei existiert nicht!" Exit Sub End If MsgBox _ prompt:="Aufruf einer Hilfedatei", _ Buttons:=vbMsgBoxHelpButton, _ HelpFile:=sFile, Context:="1001"End Sub

Den MessageBoxes kann eine Hilfeschaltfläche mit damit verbundenen Hilfethemen zugeordnet werden:

Abbildung - Konstante vbMsgBoxHelpButton
MessageBox | Herbers Excel Dialoge (27)

Konstante vbMsgBoxRight

Sub MeldungM() MsgBox prompt:="Dies ist die erste Zeile" & vbLf & _ "und dies die zweite", Buttons:=vbMsgBoxRightEnd Sub

Der Text einer MsgBox kann rechtsbündig angeordnet werden:

Abbildung - Konstante vbMsgBoxRight
MessageBox | Herbers Excel Dialoge (28)

MessageBox | Herbers Excel Dialoge (2024)
Top Articles
Latest Posts
Article information

Author: Moshe Kshlerin

Last Updated:

Views: 5698

Rating: 4.7 / 5 (77 voted)

Reviews: 84% of readers found this page helpful

Author information

Name: Moshe Kshlerin

Birthday: 1994-01-25

Address: Suite 609 315 Lupita Unions, Ronnieburgh, MI 62697

Phone: +2424755286529

Job: District Education Designer

Hobby: Yoga, Gunsmithing, Singing, 3D printing, Nordic skating, Soapmaking, Juggling

Introduction: My name is Moshe Kshlerin, I am a gleaming, attractive, outstanding, pleasant, delightful, outstanding, famous person who loves writing and wants to share my knowledge and understanding with you.