VBA 布尔


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