更新日:、 作成日:

VBA ブール型を判定する

はじめに

Excel VBA マクロのブール型 (Boolean) を判定する方法を紹介します。

False が初期値 (既定値) です。

等しい 値 = 値 、等しくない 値 <> 値のように比較演算子を使用して、値を判定できます。

かつ 条件 And 条件 、または 条件 Or 条件 のように論理演算子を使用して、複数条件を判定できます。

Boolean の初期値

Boolean 型には TrueFalse の値を設定します。

False が初期値 (既定値) です。

Dim b As Boolean
Debug.Print(b) ' False、初期値

Boolean を判定する

比較演算子を使用して比較した結果が Boolean 型になります。比較した結果が真のものが True。偽のものが False です。

= を入力して、等しいか判定できます。

<> を入力して、等しくないか判定できます。

Dim b As Boolean
b = (1 = 2)
Debug.Print(b) ' False、等しい

b = (1 <> 2)
Debug.Print(b) ' True、等しくない

b = (1 > 2)
Debug.Print(b) ' False、大きい

b = (1 < 2)
Debug.Print(b) ' True、小さい

b = (1 >= 2)
Debug.Print(b) ' False、以上

b = (1 <= 2)
Debug.Print(b) ' True、以下
比較演算子について詳しくは「演算子」をご覧ください。

If 文」などの条件を入力するところには Boolean 型を指定するので、条件の結果として使われます。

Dim b As Boolean
b = (1 = 1) ' 条件

If b Then ' 結果をそのまま指定する
    Debug.Print("True")
End If

If (1 = 1) Then ' 条件を指定する
    Debug.Print("True")
End If

複数条件の判定

論理演算子を使用して、複数条件や 3 つ以上の条件にできます。

すべての条件に一致するときは 条件 And 条件 のように入力します。

どれか 1 つでも条件に一致するときは 条件 Or 条件 のように入力します。

演算子 演算名 使用例 結果
And論理積True And True
True And False
False And False
True
False
False
Or論理和True Or True
True Or False
False Or False
True
True
False
Not論理否定Not True
Not False
False
True
Xor排他的論理和True Xor True
True Xor False
False Xor False
False
True
False

And はどちらも True のときのみ結果が True になります。

Or はどちらかが True なら結果が True になります。

Not は結果を反転します。

Xor は比較するものが異なるときに結果が True になります。

比較するときは条件を () で囲むと見やすくなります。また演算子の優先順位が最上位になります。

Dim b As Boolean

b = (True And False)
Debug.Print(b) ' False

b = (True Or False)
Debug.Print(b) ' True

b = (True And False) Or (True Or False) ' False Or True を比較している
Debug.Print(b) ' True

b = Not ((True And False) Or (True Or False)) ' Not (False Or True) を比較している
Debug.Print(b) ' False
Dim i As Integer
i = 0

Dim s As String
s = "Tips"

If (i >= 0 And i <= 10) And (s = "Tips") Then
    Debug.Print("And") ' i が 0 以上「かつ」10 以下で、s が "Tips" のとき
End If
論理演算子や優先順位について詳しくは「演算子」をご覧ください。