
「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
文よりもスッキリ・読みやすく
特に文字列や飛び飛びの値を扱うときに便利!
コメント