Wenn Sie gerade erst mit der Entwicklung von Makros beginnen, suchen Sie möglicherweise nach einer einfachen Möglichkeit, einem Benutzer eine Reihe von Auswahlmöglichkeiten anzubieten und dann basierend auf der Antwort des Benutzers eine Aktion auszuführen. Dies ist eine relativ einfache Aufgabe, wenn Sie die InputBox-Funktion zusammen mit einer Select Case-Struktur verwenden.

Die erste Aufgabe besteht darin, Ihre InputBox so einzurichten, dass sie dem Benutzer die Informationen anzeigt. Angenommen, Sie haben fünf Optionen und möchten, dass der Benutzer eine dieser fünf Optionen auswählt. Mit dem folgenden Code können Sie fünf Optionen zusammenstellen, die jeweils in einer eigenen Zeile stehen:

sPrompt = "1. This is your first choice" & vbCrLf sPrompt = sPrompt & "2. This is your second choice" & vbCrLf sPrompt = sPrompt & "3. This is your third choice" & vbCrLf sPrompt = sPrompt & "4. This is your fourth choice" & vbCrLf sPrompt = sPrompt & "5. This is your fifth choice"

Sie können jetzt die sPrompt-Zeichenfolge verwenden, wenn Sie die InputBox-Funktion in Ihrem Makro aufrufen. Anschließend übersetzen Sie die Antworten des Benutzers in eine Zahl, die die Auswahl aus fünf Optionen darstellt. Der Code dafür lautet wie folgt:

sUserResp = InputBox(sPrompt, "The Big Question")

iUR = Val(sUserResp)

In diesem Beispiel wird die Antwort der InputBox-Funktion der Variablen sUserResp zugewiesen, die eine Zeichenfolge sein sollte. Die iUR-Variable, bei der es sich um eine numerische Variable (Ganzzahl) handelt, wird dann basierend auf dem Wert der Zeichenfolge festgelegt. (Die Val-Funktion gibt den Wert in einer Zeichenfolge zurück.)

Sie müssen nur noch eine Aktion ausführen, die auf der Auswahl der Nummer 1 bis 5 basiert. Sie können dazu die Struktur „Fall auswählen“ verwenden.

Die vollständige Unterroutine könnte in VBA wie folgt aussehen:

Sub TestInput()

Dim sPrompt As String     Dim sUserResp As String     Dim iUR As Integer

sPrompt = "1. This is your first choice" & vbCrLf     sPrompt = sPrompt & "2. This is your second choice" & vbCrLf     sPrompt = sPrompt & "3. This is your third choice" & vbCrLf     sPrompt = sPrompt & "4. This is your fourth choice" & vbCrLf     sPrompt = sPrompt & "5. This is your fifth choice"

iUR = 0     While iUR < 1 Or iUR > 5         sUserResp = InputBox(sPrompt, "The Big Question")

iUR = Val(sUserResp)

Wend     Select Case iUR         Case 1             'Do stuff for choice 1 here         Case 2             'Do stuff for choice 2 here         Case 3             'Do stuff for choice 3 here         Case 4             'Do stuff for choice 4 here         Case 5             'Do stuff for choice 5 here     End Select End Sub

Beachten Sie, dass in diesem Beispiel eine While …​ Wend-Schleife um die InputBox-Funktion verwendet wird. Dies geschieht, um sicherzustellen, dass der Benutzer eine Zahl zwischen 1 und 5 eingibt. Wenn der eingegebene Wert außerhalb dieses Bereichs liegt, wird der Benutzer einfach erneut gefragt.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der WordTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

WordTips ist Ihre Quelle für kostengünstige Microsoft Word-Schulungen.

(Microsoft Word ist die weltweit beliebteste Textverarbeitungssoftware.) Dieser Tipp (10763) gilt für Microsoft Word 2007, 2010, 2013 und 2016. Eine Version dieses Tipps für die ältere Menüoberfläche von Word finden Sie hier: