Optionen in einem Makro anbieten (Microsoft Excel)
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 als Zeichenfolge dimensioniert werden soll. Die UR-Variable, die als Ganzzahl dimensioniert werden soll, 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 Integer 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 (3098) gilt für Microsoft Excel 97, 2000, 2002 und 2003. Eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Excel (Excel 2007 und höher) finden Sie hier: