VBAのand演算子の使い方|3つ以上の条件をandでつなぐには

VBA

「VBAでand演算子を使いたい!」
「3つ以上の条件をandでつなぎたい!」

それ、ぜひできるようになりましょう。
この記事では、VBAのand演算子の使い方を詳しく解説しています。

VBAのand演算子とは

VBAのand演算子は、条件Aと条件Bのどちらも当てはまっているか確認するために使います。
実際に見ていただいた方がわかりやすいと思うので、以下のVBAをコピーして実行してみてください。

Sub and_result()

Dim A As Long, B As Long, C As Long
Dim result As Variant

A = 8
B = 5
C = 3

result = A > B And B > C

MsgBox result

End Sub

上記は「AはBよりも大きい」「BはCよりも大きい」という2つの条件を満たしているかどうかの結果をresultに渡します。
満たしていると「True」、満たしていないと「False」がメッセージボックスに表示されます。
8は5よりも大きく、5は3よりも大きいため、この場合は「True」になります。
それからこのコード、実はand演算子を使わなくても書けるんです。

Sub and_result2()

Dim A As Long, B As Long, C As Long

A = 8
B = 5
C = 3

If A > B Then
    If B > C Then
        MsgBox "True"
    Else
        MsgBox "False"
    End If
Else
    MsgBox "False"
End If

End Sub

If文の中にIf文を入れ、どちらも一致しているときのみメッセージボックスに「True」を返します。
しかし、1つ目のVBAと比べ、コードが長くわかりにくくなっていますよね。
and演算子を使うことで、見た人がわかりやすいコードを書くことができます。

条件分岐でand演算子を使う方法

上記ではand演算子とIf文を別々に紹介しましたが、どちらも一緒に使うこともできます。
前章で紹介したVBAをIf文とand演算子、どちらも使って書いてみましょう。

Sub and_result3()

Dim A As Long, B As Long, C As Long

A = 8
B = 5
C = 3

If A > B And B > C Then
    MsgBox "True"
Else
    MsgBox "False"
End If

End Sub

ここでは2つの条件をandでつなぎましたが、3つ以上の条件をつなぐこともできます。

3つ以上の条件をつなぐには

3つの条件をand演算子でつないでみましょう。
例として、3教科のテストで1つでも30点未満があれば補修という条件を作ってみましょう。
「1つでも30点未満があれば補修」ということは、3教科とも30点以上をとっていないといけません。
and演算子を使って「3教科とも30点以上」という条件式を作ります。

Sub and_result4()

Dim kokugo As Long, sansu As Long, eigo As Long

kokugo = 50
sansu = 70
eigo = 30

If kokugo >= 30 And sansu >= 30 And eigo >= 30 Then
    MsgBox "合格"
Else
    MsgBox "補修"
End If

End Sub

上記のVBAを実行するとメッセージボックスに合格と表示されます。
いずれかの教科を30点未満の点数にすると、補修と表示されるので試してみてください。
それからIf文が横に長く、見にくくなっていますよね。
こういうときは「_(アンダーバー)」を使って改行し、条件を見やすくしましょう。

Sub and_result5()

Dim kokugo As Long, sansu As Long, eigo As Long

kokugo = 50
sansu = 70
eigo = 20

If kokugo >= 30 And _
   sansu >= 30 And _
   eigo >= 30 Then
    MsgBox "合格"
Else
    MsgBox "補修"
End If

End Sub

改行したいところで、半角スペース+アンダーバーを入れると、条件式を続けながら改行することができます。
条件がもっとたくさんあると、縦にそろっていた方が見やすいですよね。
適切に改行を使いましょう。

まとめ

最後まで読んでいただきありがとうございます。
and演算子は条件分岐を使うときに欠かせないものです。
基本をしっかりとおさえ、複雑な条件でもわかりやすく書けるようになりましょう。
この記事が、VBAを勉強するみなさんのお役に立てると嬉しいです。

コメント

Copied title and URL