Excel VBA | 「Ifの入れ子」と「ElseIf」 の違いを例題を交えて比較

VBA
スポンサーリンク

では続けて、「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つを使い分けると、コードがぐっと読みやすくなります。

タイトルとURLをコピーしました