VBAの論理型(Boolean)とは? 基本から使い方まで解説

VBAの変数には、真(True)か偽(False)を表すための論理型(Boolean) があります。
プログラムの条件分岐やフラグ管理に使われ、コードの可読性や効率を向上させる重要なデータ型です。

本記事では、VBAにおける論理型(Boolean)の使い方や注意点を詳しく解説します。

1. Boolean型とは?

Boolean は、True または False の2つの値のみを持つデータ型 です。

特徴

  • 真偽値(True/False)を扱う
  • メモリ使用量は2バイト
  • 条件分岐(If文)やフラグ管理に適している

2. Boolean型の宣言と代入

基本的な使い方

Dim isCompleted As Boolean
isCompleted = True

False の初期値

Boolean型の変数を宣言すると、デフォルトでは False が格納されます。

Dim isActive As Boolean
Debug.Print isActive '出力: False(初期値)

3. Boolean型を条件分岐で使う

VBAで条件分岐を行う場合、Boolean型はとても便利です。

If文での使用

Dim isReady As Boolean
isReady = True

If isReady Then
'isReady = Trueと同じ
Debug.Print "準備完了"
Else
Debug.Print "準備中"
End If

If isReady = True Then のように書くこともできますが、If isReady Then だけで十分です。

4. Boolean型の比較演算

論理型は 比較演算の結果として True または False を返す ことができます。

比較演算の例

Dim a As Integer, b As Integer
Dim result As Boolean

a = 10
b = 20

result = (a < b) 'True
Debug.Print result


result = (a < b) 'False
Debug.Print result

上記のように、比較の結果を Boolean 型の変数に格納できます。

論理演算(AND / OR / NOT)

Boolean型は、以下のような論理演算にも使用できます。

Dim x As Boolean, y As Boolean
Dim result As Boolean

x = True
y = False

result = x And y 'False
Debug.Print result

result = x Or y 'True
Debug.Print result

result = Not x 'False
Debug.Print result
演算子説明
And両方が True のとき TrueTrue And False → False
Orどちらかが True のとき TrueTrue Or False → True
NotTrue を False に、False を True に反転Not True → False

5. Boolean型の数値との関係

Boolean 型は 内部的に True を -1, False を 0 として扱います。
このため、数値と組み合わせることも可能です。

Boolean型を数値として扱う

Dim flag As Boolean
Dim inNum as Integer
Dim boolValue As Boolean

flag = True
Debug.Print flag '出力: True

Debug.Print flag * 1 '出力: -1
Debug.Print flag * 10 '出力: -10


boolValue = True
inNum = boolValue
Debug.Print inNum '出力: -1

boolValue = False
inNum = boolValue
Debug.Print inNum '出力: 0

数値をBoolean型に変換

Dim num As Integer
Dim boolValue As Boolean


num = 5
boolValue = (num <> 0) '0以外なら True、0なら False
Debug.Print boolValue '出力: True

ポイント

  • True = -1False = 0 だが、数値 0 以外は True と見なされる。
  • Boolean を Integer に代入すると -1 または 0 が格納される。

6. Boolean型の注意点

比較演算の省略

If 文で Boolean 型を使うときは、比較演算を省略できます。

Dim isValid As Boolean
isValid = True

'OK
If isValid Then
Debug.Print "有効です"
End If

'これでもOK
If isValid = True Then
Debug.Print "有効です"
End If

ただし、後者の If isValid = True Then は 冗長な書き方 なので、なるべく省略しましょう。


Booleanの数値変換に注意

Dim testBool As Boolean
testBool = 1
Debug.Print testBool '出力: True(VBAは非ゼロをTrueとする)

testBool = -1
Debug.Print testBool '出力: True

testBool = 0
Debug.Print testBool '出力: False

ポイント

  • 0 は False0以外 は True になる。
  • True の内部値は -1 だが、1 を代入しても True として扱われる。

7. まとめ

  • Boolean は True(-1) または False(0)の値を持つ
  • 条件分岐やフラグ管理に便利
  • If isReady Then のように True の比較は省略可能
  • AndOrNot などの論理演算が可能
  • Boolean の True は -1False は 0(ただし、非ゼロは True として扱われる)
  • 数値とBooleanの変換には注意が必要

Boolean型を適切に使うことで、コードの可読性が向上し、バグを減らすことができます!

コメント

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