Select Case ステートメントSelect Case statement

の値に応じて、複数のステートメントのグループのいずれかを実行します。Executes one of several groups of statements, depending on the value of an expression.


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

Select Case ステートメントの構文には、次の指定項目があります。The Select Case statement syntax has these parts:

パーツPart 説明Description
testexpressiontestexpression 必須。Required. 任意の数値式または文字列式です。Any numeric expression or string expression.
expressionlist-nexpressionlist-n Case がある場合は必須です。Required if a Case appears.

expressionexpressionToexpressionIscomparisonoperator expression の形式の 1 つまたは複数を含む区切りリストです。Delimited list of one or more of the following forms: expression, expressionToexpression, Iscomparisonoperator expression.

To キーワードは値の範囲を指定します。The To keyword specifies a range of values. To キーワードを使用する場合は、小さい方の値を To の前に置く必要があります。If you use the To keyword, the smaller value must appear before To.

Is キーワードは比較演算子 (IsLike を除く) と併用して値の範囲を指定します。Use the Is keyword with comparison operators (except Is and Like) to specify a range of values. 指定していない場合は、Is キーワードが自動的に挿入されます。If not supplied, the Is keyword is automatically inserted.
statements-nstatements-n 省略可能。Optional. testexpressionexpressionlist-n のいずれかの部分と一致したときに実行される 1 つ以上のステートメントです。One or more statements executed if testexpression matches any part of expressionlist-n.
elsestatementselsestatements 省略可能です。Optional. testexpressionCase 句のいずれとも一致しない場合に実行される、1 つ以上のステートメントです。One or more statements executed if testexpression doesn't match any of the Case clause.


testexpressionCase expressionlist 式のいずれかと一致する場合は、その Case 句の後から次の Case 句まで、最後の句については End Select までの_ステートメント_が実行されます。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. その後、End Select の次のステートメントに制御が渡されます。Control then passes to the statement following End Select. testexpression が複数の Case 句の expressionlist 式に一致する場合は、最初に一致した句に続くステートメントのみが実行されます。If testexpression matches an expressionlist expression in more than one Case clause, only the statements following the first match are executed.

Case Else 句は、その他のどの Case の選択肢にも testexpressionexpressionlist との間に一致するものが見つからない場合に実行する elsestatements を示すために使用されます。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. Case Else は必須ではありませんが、予測できない testexpression の値を処理するために、Select Case ブロック内で使用することをお勧めします。Although not required, it is a good idea to have a Case Else statement in your Select Case block to handle unforeseen testexpression values. Case expressionlist と一致する testexpression がないときに、Case Else ステートメントもない場合は、End Select の後のステートメントから実行が続行されます。If no Case expressionlist matches testexpression and there is no Case Else statement, execution continues at the statement following End Select.

それぞれの Case 句に複数の式または範囲を使用できます。You can use multiple expressions or ranges in each Case clause. たとえば、次の行は有効です。For example, the following line is valid:

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


この Is 比較演算子は、Select Case ステートメントで使用される Is キーワードとは異なります。The Is comparison operator is not the same as the Is keyword used in the Select Case statement.

文字列の範囲や複数の文字列式を指定することもできます。You also can specify ranges and multiple expressions for character strings. 次の例では、Caseeverything と完全に等しい文字列、アルファベット順で nutssoup の間にある文字列、および TestItem の現在の値と一致します。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 ステートメントは入れ子にできます。Select Case statements can be nested. 入れ子にした Select Case ステートメントごとに、対応する End Select ステートメントが必要になります。Each nested Select Case statement must have a matching End Select statement.


この例では、Select Case ステートメントを使用して変数の値を評価します。This example uses the Select Case statement to evaluate the value of a variable. 評価される変数の値が 2 番目の Case 句に含まれているため、その句に関連付けられたステートメントのみが実行されます。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

関連項目See also

サポートとフィードバックSupport and feedback

Office VBA またはこの説明書に関するご質問やフィードバックがありますか?Have questions or feedback about Office VBA or this documentation? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.