更新日:、 作成日:
VBA CBool 関数:Boolean 型に変換する
はじめに
Excel VBA マクロの CBool 関数から Boolean 型に変換する方法を紹介します。
CBool 関数は、数値や文字列などをブール型 (Boolean) に変換します。
1 なら True を返します。
0 なら False を返します。
数値や文字列を Boolean 型に変換したいときに使用します。
CBool 関数の引数と戻り値
CBool(値)
値をブール型 (Boolean) に変換します。
引数「値」 | 数値や文字列を指定します。 |
戻り値の型 | ブール型 (Boolean) |
解説
文字列や数値を Boolean 型に代入すると、CBool 関数を使用したときと同じ結果になります。
引数「値」が数値なら 0 を False に変換し、それ以外をすべて True に変換します。
引数「値」が文字列のとき、数値に変換できる値なら上記と同じように変換します。 "true" や "false" ならそのまま True や False に変換します。それ以外はすべて「エラー 13 型が一致しません。」が発生します。
引数「値」が日付なら数値に変換できるので True に変換します。ただし日付形式の文字列 "2000/01/01" なら「エラー 13 型が一致しません。」が発生します。
変換できない値を指定すると「エラー 13 型が一致しません。」が発生します。
数値ならすべて変換できるので、変換できるかどうかは「IsNumeric 関数」で判定できます。
使用例
CBool 関数の使用例を紹介します。
Boolean 型に変換する
Boolean 型に変換します。
Dim b As Boolean
b = CBool(0)
Debug.Print(b) ' False
b = CBool(1)
Debug.Print(b) ' True
b = CBool(-123)
Debug.Print(b) ' True
b = CBool("1")
Debug.Print(b) ' True
b = CBool("true")
Debug.Print(b) ' True
b = CBool("false")
Debug.Print(b) ' False
b = CBool(CDate("2000/1/1"))
Debug.Print(b) ' True
b = CBool(CDate("0:00:00"))
Debug.Print(b) ' False、数値の 0 に変換されるため
b = CBool("2000/1/1") ' エラー
b = CBool("tips") ' エラー
変換できるときだけ変換する
「IsNumeric 関数」を使用して、変換できるときだけ変換します。
Dim s As String
s = "123"
Dim b As Boolean
If IsNumeric(s) = True Then ' 変換できるときだけ Boolean にする
b = CBool(s)
Else
b = False ' Boolean の初期値
End If
Debug.Print(b)
スポンサーリンク