この記事で解決できる3つの疑問

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文は、マクロの「判断力」を高めるための必須スキルです。
最初は少し構文に戸惑うかもしれませんが、意味を理解しながら使うことで、あらゆる業務シーンに応用可能になります。
「まずは空欄チェック」など簡単な例から、自分の業務に合った形へと進化させていきましょう!
コメント