Select Case


Select Caseステートメント

構文

Select Case testexpression

[Case expressionlist-n

[statements-n]] ...

[Case Else

[elsestatements]]

End Select

testexpressionには、評価する数式または文字列式を指定します。

expressionlistには、Case節を実行するための条件を指定します。

statementsは省略可能です。実行する処理を指定します。

解説

testexpressionに指定した判断条件を評価して、expressionlistに指定した結果と一致した場合にそのCase節の処理を行います。

たとえば、次のケースで変数Aに2が代入されているときは、処理2が実行されます。

    Select Case A
    Case 1
        処理1
    Case 2
        処理2
    Case 3
        処理3
    End Select

判断条件がどの結果とも一致しない場合、プログラムの制御はEnd Selectの次行に移ります。Case節の最後にCase Elseを指定すると、その前に指定した結果に該当しない場合の処理を記述することができます。

判断条件を演算した結果で分岐する場合は、Isキーワードを使用して次のように記述します。

    Select Case A
    Case Is < 5
        処理1
    Case Is = 5
        処理2
    Case Is > 5
        処理3
    End Select

この場合のIsは判断条件である変数Aと置き換えられ、「A<5」「A=5」「A>5」を指定したことになります。変数Aに6が代入されていると、処理3が実行されます。

サンプル

次の例は、ユーザーが入力した数値によって異なるメッセージを表示します。

Sub Sample()
    Dim a As Integer
    a = InputBox("数値を入力してください")
    Select Case a
    Case Is < 10
        MsgBox "10より小さいです"
    Case 15
        MsgBox "入力されたのは15です"
    Case Is > 20
        MsgBox "20より大きいです"
    Case Else
        MsgBox "条件に当てはまりません"
    End Select
End Sub