VBAにおける「分岐処理」で使う代表的な関数・構文を表にまとめました。
分岐は「条件によって処理を切り替える」ための基本構造で、関数というより「制御構文」に近いですが、実務でよく使うものを整理しています。
VBA 分岐処理 一覧表
| 分岐構文 / 関数 | 説明 | 使用例 | 結果 |
|---|---|---|---|
| If … Then … Else | 最も基本的な条件分岐。条件が真なら処理を実行、偽なら別処理。 | vba If score >= 80 Then MsgBox "合格" Else MsgBox "不合格" End If | 80以上なら「合格」 |
| ElseIf | 複数条件を順に判定。 | vba If score >= 90 Then MsgBox "優" ElseIf score >= 70 Then MsgBox "良" Else MsgBox "不可" End If | 点数に応じて評価 |
| Select Case | 条件が多い場合に見やすく整理できる分岐。 | vba Select Case grade Case "A": MsgBox "優秀" Case "B": MsgBox "良" Case Else: MsgBox "その他" End Select | gradeの値に応じて分岐 |
| IIf(条件, 真の場合, 偽の場合) | 関数形式の条件分岐。セル関数のIFに近い。 | vba result = IIf(score >= 60, "合格", "不合格") | 60以上なら「合格」 |
| Choose(インデックス, 値1, 値2, …) | 数値インデックスに応じて値を返す。簡易分岐に便利。 | vba MsgBox Choose(2, "赤", "青", "緑") | 「青」 |
| Switch(条件1, 値1, 条件2, 値2, …) | 複数条件を一度に評価し、最初に真になった値を返す。 | vba MsgBox Switch(score>=90,"優", score>=70,"良", True,"不可") | 条件に応じた文字列 |
✅ ポイント
- If / ElseIf:少数条件の分岐に最適
- Select Case:条件が多いときにコードを見やすく整理
- IIf関数:ワンライナーで条件分岐したいときに便利(ただし可読性に注意)
- Choose / Switch:配列的に値を選ぶ、または複数条件を簡潔に書く場合に有効
👉 実務では「If / ElseIf」と「Select Case」が最も多用されます。
