では続けて、「ElseIf」と比較してさらに便利な書き方:Select Case を紹介します。これは「条件がたくさんあるとき」にコードをすっきりさせる方法です。
Select Case の基本
If ... ElseIf ... Elseは条件が増えると長くなりがち。Select Caseを使うと「値ごとに分岐」するコードが読みやすくなる。- 特に「点数の範囲」「曜日」「メニュー番号」などを判定するときに便利。
例題:テストの点数判定
「点数によってメッセージを変える」処理を Select Case で書くとこうなります。
Sub TestResultSelectCase()
Dim score As Integer
score = Range("B2").Value
Select Case score
Case Is < 50
MsgBox "不合格です"
Case 50 To 69
MsgBox "合格です" & vbNewLine & "追加レポートが必要です"
Case Is >= 70
MsgBox "合格です"
End Select
End Sub
VB解説
Case Is < 50→ 50未満なら「不合格」Case 50 To 69→ 50〜69なら「合格+レポート」Case Is >= 70→ 70以上なら「合格」- 条件が横並びで整理されていて、読みやすい。
ElseIfとの比較
| 書き方 | 向いている場面 | メリット | デメリット |
|---|---|---|---|
| ElseIf | 条件が複雑で「範囲」や「複数条件」を柔軟に書きたいとき | どんな条件でも書ける | 条件が多いとコードが長くなる |
| Select Case | 値や範囲ごとに分けたいとき(点数、曜日、メニュー番号など) | 条件が整理されて読みやすい | 複雑な条件式には不向き |
初心者へのアドバイス
- 条件が少ない → If / ElseIf
- 条件が多い(値ごとに分けたい) → Select Case
- 実務では「点数判定」「曜日ごとの処理」「メニュー番号ごとの処理」などで
Select Caseがよく使われる。
👉 まとめると、
- 入れ子If → 段階的に条件を絞りたいとき
- ElseIf → 条件を横並びで整理したいとき
- Select Case → 値や範囲ごとに分けたいとき
この3つを使い分けると、コードがぐっと読みやすくなります。
