この記事で解決できる3つの疑問
A子さんIf文って何のために使うの?
条件によって処理を分けたいけど、どう書けばいいの?
If~Then、ElseIf、Else、End Ifの違いを具体例で知りたい!
結論:If文は「条件に応じた処理の分岐」ができる超重要構文!
私はVBA初心者の頃、「ある条件のときだけ別の処理をしたい」と思っても、どこから手を付ければよいのか分かりませんでした。
ですが、If文を理解してからは、入力ミスのチェックや分岐処理ができるようになり、一気に自動化が実用的なものになったのです。
If文って何?



「条件に応じて処理を変える」ための構文です。
たとえば、あるセルが空欄なら注意を出す、数値が一定以上なら合格と表示する――そうした柔軟な判断をマクロに組み込むことができます。
基本形を理解しよう(If ~ Then ~ End If)
Sub Ifの基本()
If 条件 Then
条件がTrueのときに実行される処理
End If
End Sub



「条件がTrueのとき」とは「条件が正しいとき」、「条件を満たすとき」と同じ意味で捉えましょう。
例:
Sub Ifの基本例()
If Range("A1").Value = "" Then
MsgBox "A1セルが空欄です"
End If
End Sub



例では、選択中のシートのA1セルが空欄である時「A1セルが空欄です」のポップアップがひょうじされます。
複数条件で使う(ElseIf, Elseの使い方)
Sub Ifの複数条件()
If 条件1 Then
条件1がTrueのときの処理
ElseIf 条件2 Then
条件2がTrueのときの処理
Else
条件1・2以外の処理
End If
End Sub



このようにすることで
「条件1が正しいときだけしたい処理」
「条件2が正しいときだけしたい処理」
「どちらの条件も満たさない時の処理」
と3つに分岐を作る事ができます。
例:
Sub Ifの複数条件例()
Dim 点数 As Integer
点数 = Range("A1").Value
If 点数 >= 80 Then
MsgBox "優秀!"
ElseIf 点数 >= 60 Then
MsgBox "合格!"
Else
MsgBox "再チャレンジ!"
End If
End Sub



例では、点数という数字の入れ物に対して選択中のシートのA1セルの値を代入し、それが80以上なら「優秀!」、60以上なら「合格!」60より小さい値なた「再チャレンジ!」というメッセージ(ポップアップを表示する)します。
実践例:社員番号の空欄をチェックするマクロ
Sub 社員番号チェック()
If Range("B2").Value = "" Then
MsgBox "社員番号が未入力です", vbExclamation
Else
MsgBox "社員番号は " & Range("B2").Value & " です"
End If
End Sub



このように、「入力がされているかどうか」で分岐することで、入力が漏れている場合「社員番号が未入力です」のメッセージ(ポップアップを表示する)で注意喚起ができます。
応用例:点数に応じて評価を表示する
Sub 点数評価()
Dim 点数 As Integer
点数 = Range("C2").Value
If 点数 >= 90 Then
Range("D2").Value = "A評価"
ElseIf 点数 >= 70 Then
Range("D2").Value = "B評価"
Else
Range("D2").Value = "C評価"
End If
End Sub



数値によって複数パターンの処理がある場合に非常に便利です。入力フォームや申請チェックなどに幅広く応用できます。
まとめ:条件分岐をマスターしてマクロを進化させよう!
If文は、マクロの「判断力」を高めるための必須スキルです。
最初は少し構文に戸惑うかもしれませんが、意味を理解しながら使うことで、あらゆる業務シーンに応用可能になります。
「まずは空欄チェック」など簡単な例から、自分の業務に合った形へと進化させていきましょう!

コメント