VBAで「A列が東京都なら〇〇する」「空白だったら処理をスキップ」といった条件に応じた処理を書くときに使うのが If〜Then〜Else〜End If ステートメントです。
この記事では、条件分岐の基本構文・具体的なコード例・ElseIf による複数条件の書き方を解説します。
If〜Thenの基本構文とは?
条件が「正しい場合」と「正しくない場合」でそれぞれ異なる処理を設定できます。
If 条件 Then
' 条件が正しい場合の処理
Else
' 条件が正しくない場合の処理
End If
「正しくない場合」の処理が不要な場合は Else 以降を省略できます。ただし End If は必須です。
' Elseを省略する例(条件が正しい場合だけ処理する)
If Cells(1, 1).Value = "" Then
MsgBox "セルが空欄です"
End If
MsgBoxと組み合わせてYes/No分岐するには?
MsgBoxの戻り値を If で判定することで、ユーザーの選択に応じて処理を切り替えられます。
Dim r As Integer
r = MsgBox("背景色を赤色にしますか?", Buttons:=vbYesNo, Title:="色の設定")
If r = vbYes Then
Cells(1, 1).Interior.Color = RGB(255, 0, 0) ' 赤色
Else
Cells(1, 1).Interior.Color = RGB(128, 128, 128) ' グレー
End If
複数の条件を順番に判定するには?
条件が3つ以上になる場合は ElseIf を使って複数条件を連ねます。
Dim score As Long
score = Cells(1, 1).Value
If score >= 80 Then
Cells(1, 2).Value = "合格"
ElseIf score >= 60 Then
Cells(1, 2).Value = "再試験"
Else
Cells(1, 2).Value = "不合格"
End If
上から順に条件を評価し、最初に一致した Then 以降の処理が実行されます。
よく使う条件の書き方とは?
| 条件 | 書き方 |
|---|---|
| 空白かどうか | If Cells(i, 1).Value = "" Then |
| 特定の文字列と一致 | If Cells(i, 1).Value = "東京都" Then |
| 特定の文字列を含む | If Cells(i, 1).Value Like "*東京*" Then |
| 数値の比較 | If Cells(i, 1).Value >= 100 Then |
| 複数条件のAND | If A = "〇" And B > 0 Then |
| 複数条件のOR | If A = "〇" Or A = "△" Then |
まとめ
If 条件 Then〜Else〜End Ifで条件に応じた処理の分岐ができるElseは省略可能だがEnd Ifは必須ElseIfを使うと3パターン以上の条件を順番に評価できるAnd・Orで複数条件を組み合わせられる- マクロの記録では
Ifは記録されないため、自分でコードを書く必要がある
よくある質問
IfとSelect Caseはどう使い分けますか?
条件が2〜3パターンで複数の変数を組み合わせる場合は If、同じ変数の値で4パターン以上分岐する場合は Select Case の方がコードがすっきりします。
Not演算子を使って「〇〇でない場合」を書けますか?
書けます。If Not Cells(i, 1).Value = "" Then のように Not を使うと条件を否定できます。あるいは If Cells(i, 1).Value <> "" Then と書くのが一般的です。
If文の中にIfを入れ子にできますか?
できます。ネストしたIfと呼びます。ただし深くなりすぎるとコードが読みにくくなるため、ElseIf や Select Case で整理することも検討しましょう。
1行でIfを書く方法はありますか?
あります。If 条件 Then 処理 と1行で書くことができます。ただし Else を含む場合はインライン(同じ行)で書くと読みにくくなるため、複数行で書く方が推奨されます。
条件に文字列を使う場合、大文字・小文字は区別されますか?
デフォルトでは区別されません。区別したい場合はモジュール先頭に Option Compare Binary を追加するか、StrComp 関数を使って比較します。
動画で学びたい方へ
「記事を読んでも、実際に自分で書けるか不安…」という方には、動画で基礎からじっくり学べる講座がおすすめです。
VBAが初めての方を前提に、つまずきやすいポイントを先回りして解説しています。サンプル動画は無料でご覧いただけます。



