IF文は、「もし〇〇なら△△する」みたいに、条件によって処理を分けたいときに使う。
例えば、「セルA1の値が100以上なら色を変える」とか、「ボタンが押されたらメッセージを表示する」とか。
IF文の基本形
① シンプルなIF文(1つの条件)
- 例:セルA1の値が100以上ならメッセージを表示
Sub SimpleIf()
If Range("A1").Value >= 100 Then
MsgBox "A1の値は100以上です!"
End If
End Sub
- ポイント
- If 条件 Then で始めて、処理を書き、最後に End If で閉じる
- 条件が True なら Then の後の処理を実行
② IF~ELSE(2択の分岐)
- 例:セルA1の値が100以上なら「OK」、未満なら「NG」
Sub IfElse()
If Range("A1").Value >= 100 Then
MsgBox "OK!"
Else
MsgBox "NG…"
End If
End Sub
- ポイント
- If 条件 Then の後に Else をつけると、条件が False のときの処理も書ける
③ IF~ELSEIF(3つ以上の条件)
- 例:セルA1の値によってメッセージを変える
Sub IfElseIf()
Dim score As Integer
score = Range("A1").Value
If score >= 80 Then
MsgBox "合格!(80点以上)"
ElseIf score >= 50 Then
MsgBox "あとちょっと!(50点以上)"
Else
MsgBox "不合格…(50点未満)"
End If
End Sub
- ポイント
- ElseIf を使うと、条件を追加できる(無限に増やせる)
- 上から順番に評価されるので、条件の順番に注意!
AND・ORを使った複数条件
④ AND(すべての条件を満たすとき)
- 例:セルA1が100以上 かつ セルB1が50以上ならOK
Sub IfAnd()
If Range("A1").Value >= 100 And Range("B1").Value >= 50 Then
MsgBox "両方クリア!"
Else
MsgBox "条件未達…"
End If
End Sub
- ポイント
- And を使うと、両方の条件を満たしたときだけ True になる
⑤ OR(どれか1つの条件を満たせばOK)
- 例:セルA1が100以上 または セルB1が50以上ならOK
Sub IfOr()
If Range("A1").Value >= 100 Or Range("B1").Value >= 50 Then
MsgBox "どちらかクリア!"
Else
MsgBox "両方NG…"
End If
End Sub
- ポイント
- Or を使うと、どれか1つでも条件を満たせば True になる
⑥IF文を1行で書く(シンプルな条件)
- 例:セルA1の値が100以上ならOK(1行で書く)
If Range("A1").Value >= 100 Then MsgBox "OK!"
- ポイント
- Then の後にすぐ処理を書くと、End If なしで1行にできる
- でも、複雑な処理を書くなら普通の形にした方が見やすい
⑦IF文のネスト(入れ子構造)
- 例:セルA1が100以上なら、さらにB1が50以上かチェック
Sub NestedIf()
If Range("A1").Value >= 100 Then
If Range("B1").Value >= 50 Then
MsgBox "A1は100以上 & B1は50以上!"
Else
MsgBox "A1は100以上だが、B1は50未満…"
End If
Else
MsgBox "A1が100未満…"
End If
End Sub
- ポイント
- IFの中にIFを書くこともできる(ネスト)
- ただし、ネストしすぎると コードが読みにくくなる ので注意
まとめ

IF文はめちゃくちゃよく使うから、色々試してみるといいよ!