Meldungen

Die Funktionen MsgBox und InputBox halten den Code an und warten darauf, dass der User eine Eingabe vornimmt. Die Eingabe kann dann im Code weiterverwendet werden. In gewisser Weise handelt es sich um sehr einfache Eingabeformulare.

MsgBox

MsgBox(Prompt As String, [Buttons As VbMsgBoxStyle = vbOKOnly], [Title As String], [HelpFile, Context]) As VbMsgBoxResult
Microsoft Word
Im Direktfenster gibt es gleich eine Information

MsgBox zeigt dem User eine Meldung an. Prompt wird dem User dann wie nebenstehend angezeigt. Erst, wenn der User reagiert hat, wird der weitere Code ausgeführt.

Sub Nachricht()

MsgBox "Im Direktfenster gibt es gleich eine Information"
Debug.Print "Dies ist eine Information"

End Sub

Das Argument Buttons definiert näheres zum Aussehen der Meldung. Man kann...

Dafür gibt es eine Aufzählung namens VbMsgBoxStyle. Man kann mehrere Konstanten dieser Aufzählung zugleich verwenden, indem man sie addiert. Die Konstanten sind hier in Gruppen gegliedert, natürlich kann man aus den ersten drei Gruppen immer nur eine Konstante verwenden.

Zeigt man mehrere Buttons an, erfährt man über den Rückgabewert der Funktion, welchen der User ausgewählt hat. Dazu stellt VBA die Aufzählung VbMsgBoxResult zur Verfügung.

Mit dem Argument Title kann noch eine Überschrift definiert werden. Ohne dieses Argument wird der Name der Applikation in der Titelleiste angezeigt.

VBA-Tutorial
exclamation Wurden Ihnen gerade viele Informationen zugemutet?
Sub Information()
Dim Antwort As VbMsgBoxResult
Dim Meldung As String

Meldung = "Wurden Ihnen gerade viele Informationen zugemutet?"
Antwort = MsgBox(Meldung, vbYesNo + vbQuestion, "VBA-Tutorial")

If Antwort = vbYes Then
    MsgBox "Fangen Sie weiter vorn nochmal an"
Else
    MsgBox "OK, dann können wir weitermachen"
End If

End Sub

Die Argumente HelpFile und Context benötigt man, wenn man eine eigene Hilfedatei erstellt. Im Rahmen des VBA-Tutorials wird darauf nicht näher eingegangen.

InputBox

InputBox(Prompt As String, [Title As String], [Default As String], [XPos], [YPos], [HelpFile, Context]) As String
Microsoft Word
Geben Sie einen Text ein

InputBox zeigt dem User eine Eingabeaufforderung an, mit der man einen Text eingeben kann, der anschließend als String zur Verfügung steht. Prompt wird in der InputBox angezeigt. Erst, wenn der User reagiert hat, wird der weitere Code ausgeführt.

Debug.Print InputBox("Geben Sie einen Text ein")

Ihr Name?
Wie heißen Sie?

Mit dem Argument Title kann noch eine Überschrift definiert werden. Ohne dieses Argument wird der Name der Applikation in der Titelleiste angezeigt. Mit Default kann man einen Text angeben, der als Voreinstellung in der InputBox angezeigt wird.

Function Eingabe() As String

Eingabe = InputBox("Wie heißen Sie?", "Ihr Name?", "Müller")

End Function

Mit XPos und YPos kann, von oben Links beginnend, die Position der Eingabeaufforderung vorgegeben werden. Ohne diese Argumente wird sie ca. zentriert dargestellt.

Die Argumente HelpFile und Context benötigt man, wenn man eine eigene Hilfedatei erstellt. Im Rahmen des VBA-Tutorials wird darauf nicht näher eingegangen.