布尔

Dim Value As Boolean

布尔值用于存储可以表示为 True 或 False 的值。在内部,数据类型存储为 16 位值,0 表示 False,任何其他值表示 True。

应当注意,当将布尔值强制转换为数字类型时,所有位都设置为 1.这将导致签名类型的内部表示为 -1,无符号类型(字节)的最大值。

Dim Example As Boolean
Example = True
Debug.Print CInt(Example)  'Prints -1
Debug.Print CBool(42)      'Prints True
Debug.Print CByte(True)    'Prints 255

转换为布尔值的转换函数是 CBool()。尽管它在内部表示为 16 位数,但是从该范围之外的值转换为布尔值是安全的溢出,尽管它将所有 16 位设置为 1:

Dim Example As Boolean
Example = CBool(2 ^ 17)
Debug.Print CInt(Example)   'Prints -1
Debug.Print CByte(Example)  'Prints 255