Select Case文は、変数の値または条件式によって処理を分岐させたい場合に使用します。Case~の後に値または条件式を入れ、条件式を満たす場合にCase以降の処理が実行されます。値が同じ又は条件式を満たさない場合Case以降の処理は実行されません。
Select Case 変数
Case 値1
変数=値1の場合に処理される
Case 値2
変数=値2の場合に処理される
Case Else
変数=値1、変数=値2を満たさなかった場合に処理される
End Select
以下の例では変数の値がi=2でなので②以降の処理が実行されます。
Sub Sample()
Dim i As Integer
i = 2
Select Case i
Case 1
MsgBox "iの値は1です。"
Case 2 '---②
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でなので③以降の処理が実行されます。
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 '---③
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でなので②以降の処理が実行されます。
Sub Sample()
Dim i As Integer
i=15
Select Case i
Case 1 To 10
MsgBox "iの値は1~10の範囲内の値です。"
Case 11 To 20 '---②
MsgBox "iの値は11~20の範囲内の値です。"
Case 21 To 30
MsgBox "iの値は3です。"
Case Else
MsgBox "iの値は範囲外の値です。"
End Select
End Sub