Select Case-AnweisungSelect Case statement

Führt eine von mehreren Gruppen von Anweisungen aus, abhängig vom Wert eines Ausdrucks.Executes one of several groups of statements, depending on the value of an expression.

SyntaxSyntax

Select Case testexpressionSelect Case testexpression
[ Case expressionlist-n [ statements-n ]][ Case expressionlist-n [ statements-n ]]
[ Case Else [ elsestatements ]][ Case Else [ elsestatements ]]
End SelectEnd Select


Die Syntax der Select Case-Anweisung umfasst folgende Teile:The Select Case statement syntax has these parts:

TeilPart BeschreibungDescription
testexpressiontestexpression Erforderlich.Required. Ein beliebiger numerischer oder Zeichenfolgenausdruck.Any numeric expression or string expression.
expressionlist-nexpressionlist-n Erforderlich, wenn ein Case-Element auftritt.Required if a Case appears.

Durch Trennzeichen getrennte Liste in einem oder mehreren der folgenden Formate: expression, expressionToexpression, Iscomparisonoperator expression.Delimited list of one or more of the following forms: expression, expressionToexpression, Iscomparisonoperator expression.

Das To-Schlüsselwort gibt einen Wertebereich an.The To keyword specifies a range of values. Wenn Sie das To-Schlüsselwort verwenden, muss vor To der kleinere Wert stehen.If you use the To keyword, the smaller value must appear before To.

Das Is-Schlüsselwort verwenden Sie mit Vergleichsoperatoren (außer Is und Like), um einen Wertebereich anzugeben.Use the Is keyword with comparison operators (except Is and Like) to specify a range of values. Wenn das Is-Schlüsselwort nicht angegeben wird, wird es automatisch eingefügt.If not supplied, the Is keyword is automatically inserted.
statements-nstatements-n Optional.Optional. Eine oder mehrere Anweisungen, die ausgeführt werden, wenn testexpression mit einem Teil von expressionlist-n übereinstimmt.One or more statements executed if testexpression matches any part of expressionlist-n.
elsestatementselsestatements Optional.Optional. Eine oder mehrere Anweisungen, die ausgeführt werden, wenn testexpression mit keinem Teil der Case-Klausel übereinstimmt.One or more statements executed if testexpression doesn't match any of the Case clause.

HinweiseRemarks

Wenn testexpression mit einem Case expressionlist-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.If testexpression matches any Case expressionlist expression, the statements following that Case clause are executed up to the next Case clause, or, for the last clause, up to End Select. Anschließend wird die Steuerung an die Anweisung nach End Select übergeben.Control then passes to the statement following End Select. Wenn testexpression mit einem Ausdruck aus expressionlist in mehr als einer Case-Klausel übereinstimmt, werden nur die Anweisungen nach der ersten Übereinstimmung ausgeführt.If testexpression matches an expressionlist expression in more than one Case clause, only the statements following the first match are executed.

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.The Case Else clause is used to indicate the elsestatements to be executed if no match is found between the testexpression and an expressionlist in any of the other Case selections. 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.Although not required, it is a good idea to have a Case Else statement in your Select Case block to handle unforeseen testexpression values. Wenn keine Case expressionlist mit testexpression übereinstimmt und keine Case Else-Anweisung vorhanden ist, wird die Ausführung bis zur Anweisung nach End Select fortgesetzt.If no Case expressionlist matches testexpression and there is no Case Else statement, execution continues at the statement following End Select.

Sie können in jeder Case-Klausel mehrere Ausdrücke oder Bereiche verwenden.You can use multiple expressions or ranges in each Case clause. Beispielsweise ist die folgende Zeile gültig:For example, the following line is valid:

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.The Is comparison operator is not the same as the Is keyword used in the Select Case statement.

Sie können auch für Zeichenfolgen Bereiche und mehrere Ausdrücke angeben.You also can specify ranges and multiple expressions for character strings. 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:In the following example, Case matches strings that are exactly equal to everything, strings that fall between nuts and soup in alphabetic order, and the current value of TestItem:

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

Select Case-Anweisungen können geschachtelt werden.Select Case statements can be nested. Zu jeder geschachtelten Select Case-Anweisung muss eine entsprechende End Select-Anweisung vorhanden sein.Each nested Select Case statement must have a matching End Select statement.

BeispielExample

In diesem Beispiel wird die Select Case-Anweisung verwendet, um den Wert einer Variablen auszuwerten.This example uses the Select Case statement to evaluate the value of a variable. Die zweite Case-Klausel enthält den Wert der auszuwertenden Variablen, und daher wird nur die ihr zugeordnete Anweisung ausgeführt.The second Case clause contains the value of the variable being evaluated, and therefore only the statement associated with it is executed.

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 auchSee also

Support und FeedbackSupport and feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation?Have questions or feedback about Office VBA or this documentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.