MENU

【初心者向け】Excel VBAのIf文とは?条件分岐をマスターして効率アップ!

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

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次