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:

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

Sie können jetzt die Eingabeaufforderungszeichenfolge 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:

UserResp = InputBox(Prompt, "The Big Question")

UR = Val(UserResp)

In diesem Beispiel wird die Antwort der InputBox-Funktion der UserResp-Variablen zugewiesen, die eine Zeichenfolge sein sollte. Die UR-Variable, die eine Zahl ist, 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.

Das vollständige Unterprogramm könnte wie folgt aussehen:

Sub Macro1()

Dim Prompt As String     Dim UserResp As String     Dim UR As Single

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

UR = 0     While UR < 1 Or UR > 5         UserResp = InputBox(Prompt, "The Big Question")

UR = Val(UserResp)

Wend     Select Case UR         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 ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (11059) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365. Eine Version dieses Tippes für die ältere Menüoberfläche von Excel finden Sie hier: