Trueの概要
条件が成立したことを表す論理値 VBAの予約語 | ||
True 概要 True は、VBA において「真(true)」を意味する論理値(Boolean型の値)です。条件が成立した場合に わかりやすく説明 True は、「これは正しい!」「条件が当てはまる!」という意味で使う値です。例えば、「数値が 10 より大きいか?」といった条件の判定に使用されます。 |
||
|
True の基本的な使い方
True を使って、条件が成立した場合にメッセージを表示する基本的な例です。
Sub ExampleTrue()
Dim isPassed As Boolean
isPassed = True
If isPassed = True Then
MsgBox "合格しました!", vbInformation, "判定"
End If
End Sub
解説:
Dim isPassed As Boolean
で論理値を格納する変数を宣言。isPassed = True
で変数に True を代入。- 条件
If isPassed = True Then
が成立し、メッセージが表示される。
True を使った簡潔な記述
条件判定では、= True
を省略することが可能です。
Sub ExampleTrueShort()
Dim isPassed As Boolean
isPassed = True
' = True を省略
If isPassed Then
MsgBox "合格しました!"
End If
End Sub
解説:
- Boolean 型の変数は、If 文でそのまま使用できる。
If isPassed Then
はIf isPassed = True Then
と同じ意味。
True を使った Excel のセル操作
True を使って、セルの値に応じて処理を分岐する例です。
Sub ExampleTrueExcel()
Dim isOver100 As Boolean
Dim value As Double
' A1 の値を取得
value = Range("A1").Value
isOver100 = (value > 100) ' 100 を超えていれば True
' 条件に応じたメッセージを表示
If isOver100 Then
MsgBox "A1 の値は 100 を超えています", vbInformation, "確認"
Else
MsgBox "A1 の値は 100 以下です", vbExclamation, "確認"
End If
End Sub
解説:
- 変数
isOver100
に「A1 の値が 100 を超えているかどうか」を True/False で代入。 - 値が 100 を超えている場合は True になり、メッセージを表示。
エラーを回避する方法
True を使用する際に、変数の型やデータの型が一致しないことで発生するエラーを回避する方法を紹介します。
Sub SafeTrueExample()
Dim isValid As Boolean
Dim cellValue As Variant
On Error Resume Next
cellValue = Range("A1").Value
' A1 の値が数値であれば True、そうでなければ False
isValid = IsNumeric(cellValue)
If isValid Then
MsgBox "A1 には数値が入力されています", vbInformation, "チェック"
Else
MsgBox "A1 には数値以外が入力されています", vbExclamation, "エラー"
End If
End Sub
解説:
- 変数
isValid
にIsNumeric(cellValue)
の結果を True/False で代入。 - エラーハンドリングを適用し、数値以外が入力された場合も安全に処理。
True の注意事項
- True は -1、False は 0: VBA では
True = -1
、False = 0
なので、数値計算と混ぜると意図しない結果になることがある。 - Boolean 型の変数には明示的に True/False を代入: 数値を直接代入すると誤動作の原因になることがある。
- 条件式を適切に記述する:
If var = True Then
ではなく、If var Then
と簡潔に書く方が推奨される。
よくある質問
- Q: True は 1 ですか?
- A: VBA では
True = -1
、False = 0
です。1 ではありません。 - Q: If … Then で True を使うときに、= True を省略できますか?
- A: はい。
If var Then
のように書くのが推奨されます。 - Q: True を使ってループを作成できますか?
- A: はい。
Do While True ... Loop
を使えば無限ループを作成できますが、終了条件を入れないと抜けられなくなります。 - Q: True を比較演算子と組み合わせて使うには?
- A:
If x > 100 = True Then
よりも、If x > 100 Then
のように記述する方が簡潔で推奨されます。
まとめ
- True は論理値で、条件が成立した場合に使用される。
- Boolean 型の変数に True を代入すると、条件式の判定に利用できる。
- Excel のセル値を条件として処理する際に役立つ。
- VBA では
True = -1
、False = 0
なので注意が必要。 - 条件式では
If var Then
のように簡潔に記述できる。