VBAのIf文で複数条件を判定する(And・Orの活用法)

VBAのIf文では、単一の条件だけでなく、複数の条件を組み合わせて判定することができます。その際、条件をつなぐキーワードとして 「And」「Or」 を使用します。この記事では、それぞれの使い方や活用方法について詳しく解説します。


1. 「And」と「Or」の基本

And(かつ)の使い方

「And」 を使うと、すべての条件が満たされたときに処理を実行 します。

If 条件1 And 条件2 Then
    'すべての条件がTrueなら実行される
End If

例:セルA1が50以上、かつセルB1が100以上のときにメッセージを表示

Sub SampleIfAnd()
    If Range("A1").Value >= 50 And Range("B1").Value >= 100 Then
        MsgBox "A1は50以上、かつB1は100以上です"
    End If
End Sub

Or(または)の使い方

「Or」 を使うと、どれか1つの条件が満たされれば処理を実行 します。

If 条件1 Or 条件2 Then
    'いずれかの条件がTrueなら実行される
End If

例:セルA1が50以上、またはセルB1が100以上のときにメッセージを表示

Sub SampleIfOr()
    If Range("A1").Value >= 50 Or Range("B1").Value >= 100 Then
        MsgBox "A1が50以上 または B1が100以上です"
    End If
End Sub

2. And と Or を組み合わせる

「And」と「Or」を組み合わせて、より複雑な条件を設定することも可能 です。

例:セルA1が50以上 かつ(セルB1が100以上 または セルC1が200以上) のときにメッセージを表示

Sub SampleIfAndOr()
    If Range("A1").Value >= 50 And (Range("B1").Value >= 100 Or Range("C1").Value >= 200) Then
        MsgBox "条件を満たしました"
    End If
End Sub

ポイント

  • 条件をグループ化する場合は括弧(())を使う
  • 処理の優先順位を明確にするため、複雑な条件では括弧を適切に使うことが重要

3. 複数条件の応用例

(1) 変数を使った条件判定

変数を使うことで、条件を柔軟に設定できます。

例:変数 score が 80以上 かつ 変数 age が 18以上なら合格メッセージを表示

Sub SampleIfVariable()
    Dim score As Integer, age As Integer
    score = Range("A1").Value
    age = Range("B1").Value

    If score >= 80 And age >= 18 Then
        MsgBox "合格です!"
    Else
        MsgBox "条件を満たしていません"
    End If
End Sub

(2) 複数の条件でセルの色を変更

複数の条件に応じてセルの色を変えることもできます。

例:A1の値が50以上、かつB1の値が100以上ならセルの背景を黄色にする

Sub ChangeCellColor()
    If Range("A1").Value >= 50 And Range("B1").Value >= 100 Then
        Range("A1:B1").Interior.Color = RGB(255, 255, 0) '黄色
    Else
        Range("A1:B1").Interior.ColorIndex = xlNone      '色をリセット
    End If
End Sub

4. まとめ

  • 「And」はすべての条件が満たされたときに処理を実行
  • 「Or」はいずれか1つの条件が満たされたときに処理を実行
  • 括弧(())を使うことで、条件の優先順位を制御できる
  • 実用例として、変数を使った条件判定やセルの色変更も可能

複数条件の組み合わせを適切に使いこなすことで、より柔軟なVBAプログラムを作成できます。実際の業務でも役立つので、ぜひ試してみてください!

コメント

タイトルとURLをコピーしました