Freigeben über


Select Case-Anweisung

Führt eine von mehreren Gruppen von Anweisungen aus, abhängig vom Wert eines Ausdrucks.

Syntax

Casetextexpression auswählen
[ Caseexpressionlist-n [ statements-n ]]
[ Case Else [ elsestatements ]]
End Select

Die Syntax der Select Case-Anweisung umfasst folgende Teile:

Teil Beschreibung
testexpression Erforderlich. Ein beliebiger numerischer oder Zeichenfolgenausdruck.
expressionlist-n Erforderlich, wenn ein Case-Element auftritt.

Durch Trennzeichen getrennte Liste in einem oder mehreren der folgenden Formate: expression, expressionToexpression, Iscomparisonoperatorexpression.

Das To-Schlüsselwort gibt einen Wertebereich an. Wenn Sie das To-Schlüsselwort verwenden, muss vor To der kleinere Wert stehen.

Das Is-Schlüsselwort verwenden Sie mit Vergleichsoperatoren (außer Is und Like), um einen Wertebereich anzugeben. Wenn das Is-Schlüsselwort nicht angegeben wird, wird es automatisch eingefügt.
statements-n Optional. Eine oder mehrere Anweisungen, die ausgeführt werden, wenn testexpression mit einem Teil von expressionlist-n übereinstimmt.
elsestatements Optional. Eine oder mehrere Anweisungen, die ausgeführt werden, wenn testexpression mit keinem Teil der Case-Klausel übereinstimmt.

Hinweise

Wenn testexpression mit einem Caseexpressionlist-Ausdruck übereinstimmt, werden die Anweisungen nach dieser Case-Klausel bis zur nächsten Case-Klausel bzw., falls es sich um die letzte Klausel handelt, bis End Select ausgeführt. Anschließend wird die Steuerung an die Anweisung nach End Select übergeben. Wenn testexpression mit einem Ausdruck aus expressionlist in mehr als einer Case-Klausel übereinstimmt, werden nur die Anweisungen nach der ersten Übereinstimmung ausgeführt.

Die Case Else-Klausel wird verwendet, um die elsestatements anzugeben, die ausgeführt werden sollen, wenn keine Übereinstimmung zwischen testexpression und einer expressionlist in einem der anderen Case-Elemente gefunden wird. Es ist zwar nicht erforderlich, aber es wird empfohlen, eine Case Else-Anweisung in Ihrem Select Case-Block anzugeben, um unvorhergesehene testexpression-Werte zu behandeln. Wenn keine Caseexpressionlist mit testexpression übereinstimmt und keine Case Else-Anweisung vorhanden ist, wird die Ausführung bis zur Anweisung nach End Select fortgesetzt.

Sie können in jeder Case-Klausel mehrere Ausdrücke oder Bereiche verwenden. Beispielsweise ist die folgende Zeile gültig:

Case 1 To 4, 7 To 9, 11, 13, Is > MaxNumber 

Hinweis

Der Is-Vergleichsoperator ist nicht identisch mit dem Is-Schlüsselwort, das in der Select Case-Anweisung verwendet wird.

Sie können auch für Zeichenfolgen Bereiche und mehrere Ausdrücke angeben. Im folgenden Beispiel stimmt Case mit Zeichenfolgen überein, die genau everything entsprechen, die in alphabetischer Reihenfolge zwischen nuts und soup liegen oder die dem aktuellen Wert von TestItem entsprechen:

Case "everything", "nuts" To "soup", TestItem 

Select Case-Anweisungen können geschachtelt werden. Zu jeder geschachtelten Select Case-Anweisung muss eine entsprechende End Select-Anweisung vorhanden sein.

Beispiel

In diesem Beispiel wird die Select Case-Anweisung verwendet, um den Wert einer Variablen auszuwerten. Die zweite Case-Klausel enthält den Wert der auszuwertenden Variablen, und daher wird nur die ihr zugeordnete Anweisung ausgeführt.

Dim Number 
Number = 8    ' Initialize variable. 
Select Case Number    ' Evaluate Number. 
Case 1 To 5    ' Number between 1 and 5, inclusive. 
    Debug.Print "Between 1 and 5" 
' The following is the only Case clause that evaluates to True. 
Case 6, 7, 8    ' Number between 6 and 8. 
    Debug.Print "Between 6 and 8" 
Case 9 To 10    ' Number is 9 or 10. 
    Debug.Print "Greater than 8" 
Case Else    ' Other values. 
    Debug.Print "Not between 1 and 10" 
End Select

Siehe auch

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.