VBAのTrueで条件判定を行う方法をわかりやすく解説

スポンサーリンク
スポンサーリンク

Trueの概要

条件が成立したことを表す論理値 VBAの予約語

True

概要 True は、VBA において「真(true)」を意味する論理値(Boolean型の値)です。条件が成立した場合に True が返り、条件が成立しない場合は False が返ります。

わかりやすく説明 True は、「これは正しい!」「条件が当てはまる!」という意味で使う値です。例えば、「数値が 10 より大きいか?」といった条件の判定に使用されます。

  • True は論理値(Boolean型)で、条件が成立した場合に使われる。
  • If 文や While ループなどの条件判定に使用される。
  • 数値の比較や関数の戻り値としても利用可能。

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 ThenIf 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

解説:

  • 変数 isValidIsNumeric(cellValue) の結果を True/False で代入。
  • エラーハンドリングを適用し、数値以外が入力された場合も安全に処理。

True の注意事項

  • True は -1、False は 0: VBA では True = -1False = 0 なので、数値計算と混ぜると意図しない結果になることがある。
  • Boolean 型の変数には明示的に True/False を代入: 数値を直接代入すると誤動作の原因になることがある。
  • 条件式を適切に記述する: If var = True Then ではなく、If var Then と簡潔に書く方が推奨される。

よくある質問

Q: True は 1 ですか?
A: VBA では True = -1False = 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 = -1False = 0 なので注意が必要。
  • 条件式では If var Then のように簡潔に記述できる。