Booleanの概要
真偽値を管理する VBAの予約語 | ||
Boolean 概要 Boolean は、VBAで真偽値(True または False)を扱うデータ型です。条件分岐(If 文など)やフラグの管理に使用されます。 |
||
|
Boolean型の基本的な使い方
以下の例では、Boolean 型の変数を使って条件を判定しています。
Sub BooleanExample()
Dim isEven As Boolean
Dim number As Integer
number = 10
isEven = (number Mod 2 = 0) ' 偶数ならTrue
If isEven Then
MsgBox "この数は偶数です"
Else
MsgBox "この数は奇数です"
End If
End Sub
解説:
Dim isEven As Boolean
: 真偽値を格納する変数を定義。isEven = (number Mod 2 = 0)
:number
が偶数ならTrue
、奇数ならFalse
。If isEven Then
:isEven
がTrue
の場合のみメッセージを表示。
関数の戻り値にBooleanを使う
Boolean 型を関数の戻り値にすると、条件の判定をわかりやすくできます。
Function IsPositive(num As Integer) As Boolean
IsPositive = (num > 0)
End Function
Sub CheckNumber()
If IsPositive(5) Then
MsgBox "正の数です"
Else
MsgBox "ゼロまたは負の数です"
End If
End Sub
解説:
Function IsPositive(num As Integer) As Boolean
: 数値が正であるかを判定する関数。IsPositive = (num > 0)
: 正の数ならTrue
、そうでなければFalse
を返す。CheckNumber
でこの関数を使い、数値の判定を行う。
Booleanの値を反転する
Boolean 型の値を Not
演算子で反転することができます。
Sub ToggleBoolean()
Dim isOn As Boolean
isOn = True
MsgBox "元の値: " & isOn
isOn = Not isOn ' 反転
MsgBox "反転後: " & isOn
End Sub
解説:
isOn = True
: 変数をTrue
に設定。isOn = Not isOn
: 値を反転(True
→False
、False
→True
)。
Booleanの値の数値的な扱い
Boolean 型の True
は数値の -1
、False
は 0
として扱われます。
Sub BooleanToNumber()
Dim isTrue As Boolean
isTrue = True
MsgBox "True の数値表現: " & CInt(isTrue)
isTrue = False
MsgBox "False の数値表現: " & CInt(isTrue)
End Sub
解説:
True
は-1
として扱われる。False
は0
となる。- 条件式では
True = -1
という特性を考慮する必要がある。
注意点
- 数値とBooleanを混在させない:
Boolean
型はTrue = -1
、False = 0
なので、数値演算と混在すると誤動作の原因になることがある。 - 比較演算の結果はBooleanになる: 例えば
(5 > 3)
のような式はTrue
を返す。 - 未初期化のBoolean変数はFalse:
Dim flag As Boolean
の状態では、自動的にFalse
になる。
よくある質問
- Q: Boolean 型の変数を初期化しないとどうなりますか?
- A: VBAでは
Boolean
型の変数はデフォルトでFalse
になります。 - Q: Boolean を数値として扱うことはできますか?
- A: できますが、
True = -1
、False = 0
であることに注意が必要です。 - Q: If 文の条件判定で Boolean 変数を直接使えますか?
- A: はい、
If isEven Then
のように直接記述できます。
まとめ
- Boolean 型は
True
またはFalse
のみを持つデータ型。 - 条件判定(If 文など)やフラグの管理に最適。
- 関数の戻り値として使うとコードの可読性が向上する。
Not
を使うと値を反転できる。- 数値と混在させると意図しない動作を引き起こす可能性があるので注意。