Select Case文は、変数の値または条件式によって処理を分岐させたい場合に使用します。Case〜の後に値または条件式を入れ、条件式を満たす場合にCase以降の処理が実行されます。値が同じ又は条件式を満たさない場合Case以降の処理は実行されません。


Select Case 変数

    Case 値1

        変数=値1の場合に処理される

    Case 値2

        変数=値2の場合に処理される

    Case Else

       変数=値1、変数=値2を満たさなかった場合に処理される

End Select

						


以下の例では変数の値がi=2でなのでA以降の処理が実行されます。


Sub Sample()

    Dim i As Integer

    i=2
    
    Select Case i

        Case 1

            MsgBox "iの値は1です。"

        Case 2	'---A

            MsgBox "iの値は2です。"

        Case 3

            MsgBox "iの値は3です。"

        Case Else

            MsgBox "iの値は1,2,3以外の値です。"

    End Select

End Sub
						

比較演算子を使用する場合はCase Is文を使用します。


Select Case 変数

    Case Is 比較条件1

       変数が比較条件1を満たした場合に処理される

    Case Is 比較条件2

       変数が比較条件2を満たした場合に処理される

    Case Is 比較条件3

       変数が比較条件3を満たした場合に処理される

    Case Else

       変数が比較条件1,2,3を満たさなかった場合に処理される

End Select
						


以下の例では変数の値がi=2でなのでB以降の処理が実行されます。


Sub Sample()

    Dim i As Integer

    i=2
    
    Select Case i

        Case Is < 1

            MsgBox "iの値は1以下です。"

        Case Is < 2

            MsgBox "iの値は2以下です。"

        Case Is < 3	'---B

            MsgBox "iの値は3以下です。"

        Case Else

            MsgBox "iの値は3以上の値です。"

    End Select

End Sub
						

Case文ではToを使用して範囲を指定することができます。


Select Case 変数

    Case Is 値1 To 値2

       変数が値1〜2の範囲の値の場合処理される

    Case Is 値3 To 値4

       変数が値3〜4の範囲の値の場合処理される

    Case Is 値5 To 値6

       変数が値5〜8の範囲の値の場合処理される

    Case Else

       変数が上記の範囲の値にない場合に処理される

End Select
						


以下の例では変数の値がi=15でなのでA以降の処理が実行されます。


Sub Sample()

    Dim i As Integer

    i=15
    
    Select Case i

        Case 1 To 10

            MsgBox "iの値は1〜10の範囲内の値です。"

        Case 11 To 20	'---A

            MsgBox "iの値は11〜20の範囲内の値です。"

        Case 21 To 30

            MsgBox "iの値は3です。"

        Case Else

            MsgBox "iの値は範囲外の値です。"

    End Select

End Sub