Categories: excel

VBAのIf文完全ガイド|条件分岐でできることをやさしく解説

VBA(Visual Basic for Applications)はExcelやWordなどのMicrosoft製品をカスタマイズする際に便利なプログラミング言語です。なかでも「If文」は、条件によって処理を分けるための基本的かつ重要な構文です。
この記事では、VBA初心者の方にもわかりやすく「If文」の基本的な書き方から応用的な使い方まで丁寧に解説していきます。これを読めば、あなたも「条件によって処理を切り替える」ことができるようになります。例文も豊富に紹介するので、ぜひ最後までご覧ください。


If文とは?条件によって処理を分ける仕組み

VBAにおけるIf文は、「もし〇〇なら、△△する」という条件分岐を実現するための構文です。人間の判断に似た動きをプログラムに取り入れることができます。
たとえば「セルの値が100以上なら文字の色を赤にする」といった処理は、If文で簡単に書けます。


基本のIf文の書き方

最もシンプルなIf文の形は以下の通りです。

If 条件 Then
処理
End If

例:セルの値が100以上ならメッセージを表示する

If Range("A1").Value >= 100 Then
MsgBox "100以上です"
End If

このコードは、A1セルの値が100以上だった場合にメッセージボックスを表示します。


Elseで「それ以外の処理」を追加する

条件が成り立たなかった場合の処理を書くには「Else」を使います。

If 条件 Then
条件がTrueのときの処理
Else
条件がFalseのときの処理
End If

例:値によってメッセージを変える

If Range("A1").Value >= 100 Then
MsgBox "100以上です"
Else
MsgBox "100未満です"
End If

これで、条件に応じた2通りのメッセージを表示することができます。


ElseIfで複数の条件に対応する

条件が複数あるときは、「ElseIf」を使って複数のパターンに対応できます。

If 条件1 Then
条件1がTrueの処理
ElseIf 条件2 Then
条件2がTrueの処理
Else
どちらもFalseの処理
End If

例:点数によって評価を分ける

Dim score As Integer
score = Range("A1").Value

If score >= 80 Then
MsgBox "優秀です"
ElseIf score >= 60 Then
MsgBox "合格です"
Else
MsgBox "再試験です"
End If

このように、ElseIfを使えば3段階以上の評価にも対応できます。


複数の条件を組み合わせる(And / Orの使い方)

複数の条件を一度にチェックしたい場合は、AndやOrを使います。

  • And:すべての条件がTrueである場合にTrue
  • Or:どれか一つでもTrueであればTrue

例:2つの条件を両方満たす場合

If Range("A1").Value >= 50 And Range("B1").Value >= 50 Then
MsgBox "両方とも50点以上です"
End If

例:どちらかが満たされていれば処理を行う

If Range("A1").Value >= 50 Or Range("B1").Value >= 50 Then
MsgBox "どちらかは50点以上です"
End If

一行で書くIf文(ワンライナー)

簡単な処理なら1行で書くこともできます。

If 条件 Then 処理

例:ワンライナーでメッセージを表示

If Range("A1").Value = "" Then MsgBox "未入力です"

ただし、処理が複雑になる場合は可読性のためにも通常の形式で書いた方がよいです。


If文のネスト(入れ子)について

If文の中にさらにIf文を書くことを「ネスト」と言います。複雑な条件を組み合わせる際に使います。

If 条件1 Then
If 条件2 Then
処理
End If
End If

例:2つの条件を順番にチェック

If Range("A1").Value >= 50 Then
If Range("B1").Value >= 50 Then
MsgBox "両方とも合格です"
End If
End If

読みづらくなるため、ネストは必要最小限にするのがコツです。


Select Caseとの使い分け

If文が多くなりすぎるとコードが見づらくなります。
このようなときはSelect Caseを使うことでスッキリ整理できます。

Select Case score
Case Is >= 80
MsgBox "優秀です"
Case Is >= 60
MsgBox "合格です"
Case Else
MsgBox "再試験です"
End Select

条件が数段階ある場合は、Select Caseのほうが見やすくおすすめです。


エラーを防ぐためのポイント

  • Then を書き忘れない
  • End If を忘れずに書く
  • 複数条件を使う場合、カッコで条件をくくると安全
    例:If (a > 10) And (b < 5) Then

まとめ:If文を使いこなしてVBAスキルをアップしよう

VBAにおいて「If文」は非常に基本でありながら、さまざまな処理に応用できる強力な構文です。
本記事で紹介した内容を繰り返し練習することで、Excel操作の自動化や業務効率化が飛躍的にアップします。
ぜひ実際にVBAエディタでコードを書いて、条件分岐の力を体感してみてください。

upandup

Web制作の記事を中心に、暮らし、ビジネスに役立つ情報を発信します。 アフィリエイトにも参加しています。よろしくお願いいたします。