要点まとめ
1. 複数条件の判断が可能
- 通常の
If 条件式 Then … Else … End Ifに加えて、複数の条件を順にチェックできる書式として、ElseIfを使った構文があります。 - 書式例:
If 条件式1 Then
条件式1が True の時の処理
ElseIf 条件式2 Then
条件式2が True の時の処理
ElseIf 条件式3 Then
条件式3が True の時の処理
Else
いずれの条件式も False の時の処理
End If
``` :contentReference[oaicite:2]{index=2}
VB2. 処理の流れ・注意点
- 最初に “条件式1” が評価され、True だったらその処理を実行し、以降の
ElseIfは評価されずにEnd Ifの次に処理が移ります。 - 条件式1 が False の場合、次に “条件式2” が評価され… という順番です。
- “条件式3” も同様、最後まで条件が False の場合に
Elseの処理(省略可能)に入ります。 - 流れとして、一つの条件が True になった時点で他の条件の評価はスキップされるので、条件式の記述順が結果に影響を与える点に注意が必要です。
- また、
If文の中にさらにIf文(ネスト)を記述して、より複雑な条件分岐を行うことも可能です(このページでは簡略的に触れられています)。
3. サンプルコードと動作の例
- サンプルコード:
Option Explicit
Sub テスト()
Dim result As Integer
result = Range("B2").Value
If result > 70 Then
MsgBox "合格です"
ElseIf result > 50 Then
MsgBox "追加レポートが必要です"
Else
MsgBox "不合格です"
End If
End Sub
``` :contentReference[oaicite:7]{index=7}
VB- 解説:
- セル B2 の値を取得。
- 70 より大きければ “合格です”。
- 70 以下(=最初の条件 False)で、かつ 50 より大きければ “追加レポートが必要です”。
- それ以外(50 以下)なら “不合格です”。
- 例として B2 に 64 を入れた場合、70 より大きくないが 50 より大きいので “追加レポートが必要です” が表示されます。
- B2 に 45 を入れると、いずれの条件も True にならず “不合格です” の処理が実行されます。
4. まとめ
If … ElseIf … Else … End Ifの構文を使うことで、ひとつの If 文の中で複数の条件分岐を記述できます。- 条件の優先順(記述の順)や早期脱出(一つ True ならそれ以降を評価しない)を理解しておくことが重要です。
- ケースに応じて
Elseを省略することも可能ですが、必要に応じて “どれにも当てはまらない” 場合の処理を考えておくと安心です。 - より細かい条件分岐が必要な場合には、ネストした
Ifを使う選択肢もあります。
