MENU

【初心者向け】VBAのSelect Caseで複数条件を指定する方法|「,(カンマ)」でスマートに分岐!

A子さん

「Select Caseって見やすくて便利だけど、
“AまたはB”みたいに複数の値で同じ処理をしたいときって、どうやるの?」

先輩

そんなあなたへ!
この記事では、Case に複数の条件をまとめて書く方法をわかりやすく解説します!

結論:カンマ(,)で複数条件をまとめられる!

Select Case 変数
    Case 値1, 値2, 値3
        ' 共通の処理
End Select
目次

複数条件を指定したい場面とは?

以下のような場面、よくありますよね。

  • 曜日が「土曜」または「日曜」のとき
  • 入力値が「A」「B」「C」のいずれかのとき
  • 数値が「1」「3」「5」「7」のように飛び飛びのとき

こういう場合は、複数の値を1つのCaseでまとめるとコードがスッキリします。

Select Caseで複数条件を指定する方法

基本構文

Select Case 変数
    Case 条件1, 条件2, 条件3
        ' 条件1〜3のいずれかに一致したときの処理
    Case Else
        ' 上記以外の処理
End Select

例:曜日に応じた処理

Dim day As String
day = "土曜"

Select Case day
    Case "土曜", "日曜"
        MsgBox "週末です"
    Case "月曜", "火曜", "水曜", "木曜", "金曜"
        MsgBox "平日です"
    Case Else
        MsgBox "不明な入力です"
End Select

条件の数が多いときの工夫

条件が多いときも、カンマで区切るだけでOKです。

Select Case fruit
    Case "りんご", "みかん", "バナナ", "ぶどう", "キウイ"
        MsgBox "果物です"
    Case Else
        MsgBox "果物ではありません"
End Select

✅ コツ

  • If文で「OR」を並べるよりも、Select Caseでまとめた方が可読性が高い
  • 複数条件は順序に注意(上から評価されます)

実用コードサンプル

【例1】評価ランクの文字による分類

Dim rank As String
rank = "B"

Select Case rank
    Case "A", "B", "C"
        MsgBox "合格圏内"
    Case "D", "E"
        MsgBox "再テスト対象"
    Case Else
        MsgBox "評価外"
End Select

【例2】社員区分の判定

Dim empType As String
empType = "契約社員"

Select Case empType
    Case "正社員", "契約社員"
        MsgBox "勤怠管理が必要です"
    Case "アルバイト", "インターン"
        MsgBox "時間管理のみ"
    Case Else
        MsgBox "区分不明"
End Select

まとめ

Case 条件1, 条件2, … のようにカンマで複数指定できる

If文よりもスッキリ・読みやすく

特に文字列や飛び飛びの値を扱うときに便利!

関連記事リンク

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

CAPTCHA


目次