布尔
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