【VBA/マクロ】Select Case文の使い方(複数の条件分岐)

ExcelのVBA(マクロ)で、Select~Case文の使い方 (条件式など)について紹介します。

Select Case文とは

Select Case文は、多分岐を行うための選択文です。
評価する対象がすべて同じ場合に使います。

書式①

Select Case文は、変数と同じ値を持つCase以下を”全て”実行します。

Select Case 変数
    Case 値①
        「変数 = 値①」である場合の処理
    Case 値②
        「変数 = 値②」である場合の処理
    Case Else
         変数が値①、値②でない場合の処理
End Select

書式②

値を範囲で指定したい場合はToを使います。

Select Case 変数
    Case 値1 To 値2
        変数が値1~値2の範囲内にある場合の処理
    Case 値3 To 値4
        変数が値3~値4の範囲内にある場合の処理
    Case Else
        変数が上記以外の範囲内にある場合の処理
End Select

書式③

比較演算子と条件式を使う場合はIsを使います。

Select Case 変数
    Case Is 条件1
        変数が条件1を満たす場合の処理
    Case Is 条件2
        変数が条件2を満たす場合の処理
    Case Else
        変数が上記以外の範囲内にある場合の処理
End Select

サンプルコード①

サンプルプログラムのソースコードです。

例①

Sub test()

    x = 10

    Select Case x
        Case 5
            MsgBox "xは5です"
        Case 10
            MsgBox "xは10です"
        Case 15
            MsgBox "xは15です"
    End Select

End Sub

メッセージボックスには「xは10です」と表示されます。

例②

Sub test()

    x = 10

    Select Case x
        Case 5 To 9
            MsgBox "xは5~9です"
        Case 10 To 14
            MsgBox "xは10~14です"
        Case 15 To 19
            MsgBox "xは15~19です"
    End Select

End Sub

メッセージボックスには「xは10~14です」と表示されます。

例③

Sub test()

    x = 10

    Select Case x
        Case Is >= 15
            MsgBox "xは5以上です"
        Case Is >= 10
            MsgBox "xは10以上です"
        Case Is >= 5
            MsgBox "xは15以上です"
    End Select

End Sub

メッセージボックスには「xは10以上です」と表示されます。

関連ページ

【VBA入門】基礎から作業自動化の応用例まで解説
VBA(マクロ)で様々な処理を自動化する方法をサンプルコード付きで入門者向けにまとめました。

コメント