Select Case文

式の値に応じて、複数の文のグループの1つを実行します。

構文

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

引数:

  • Testexpression: 数値式または文字列式。

  • expressionlist-n: Caseが出現した場合は必須。1つ以上の式のカンマ区切りリスト。

  • statements-n: testexpressionがexpressionlist-nの任意の部分と一致した場合に実行される1つ以上の文。

  • elsestatements-n: testexpressionがCase句のいずれにも一致しない場合に実行される1つ以上の文。

備考

testexpressionがCase expressionlist式と一致する場合、そのCase句に続く文は、次のCase句まで(最後の句の場合はEnd Selectまで)実行されます。次に、制御はEnd Selectに続く文に渡されます。testexpressionが複数のCase句のexpressionlist式と一致する場合は、最初の一致に続く文のみが実行されます。

Case Else句を使用して、他のCase選択のいずれかでtestexpressionとexpressionlistとの間に一致が見つからない場合に実行されるelsestatementsを示します。必須ではありませんが、予期しないtestexpression値を処理するために、Select CaseブロックにCase Else文を含めることをお薦めします。testexpressionに一致するCase expressionlistがなく、Case Else文がない場合は、End Selectの後に続く文で実行が続行されます。

Select Case文はネストできます。ネストされた各Select Case文には、一致するEnd Select文が必要です。

次の例は、Select Case文の使用方法を示しています。

例1:

Dim dayOfWeek
Dim result
' Assign the day of the week (can be any number between 1 and 7)
dayOfWeek = 3 ' 1 = Sunday, 2 = Monday, ..., 7 = Saturday
' Use Select Case to check the value of dayOfWeek
Select Case dayOfWeek
    Case 1
        result = "Sunday"
    Case 2
        result = "Monday"
    Case 3
        result = "Tuesday"
    Case 4
        result = "Wednesday"
    Case 5
        result = "Thursday"
    Case 6
        result = "Friday"
    Case 7
        result = "Saturday"
    Case Else
        result = "Invalid day"
End Select
' Now, result will contain the name of the day corresponding to dayOfWeek ( Tuesday in this case )