编译器常量

Visual Basic for Applications定义了用于#If的独占常量...Then...#Else 指令。 这些常量在功能上等效于使用“#If...Then...#Else”指令定义的常量(它们在范围内为全局常量时除外);即,它们在项目中的任何地方均适用。

注意

由于 Win32 在 32 位和 64 位开发平台中都返回 True ,因此,在 #If...Then...#Else 指令在代码中返回所需的结果。 例如,由于 Win32 64 位 (Win32win64 环境中) 兼容,因此在 Win64 之前检查 Win32 会导致 Win64 条件永远不会运行,因为 Win32 返回 True。 以下顺序返回可预测结果, (这同时适用于 Winx 和 VBAx 常量) :

#If Win64 Then 
' Win64=true, Win32=true, Win16= false 
#ElseIf Win32 Then 
' Win32=true, Win16=false 
#Else 
' Win16=true 
#End If

在 16 位开发平台上,编译器常量定义如下。

常量 指示开发环境...
Win16 True 兼容 16 位。
Win32 False 不兼容 32 位。
Win64 False 不兼容 64 位。

在 32 位开发平台上,编译器常量的定义如下。

常量 指示开发环境...
Vba6 True Visual Basic for Applications版本 6.0 兼容。
Vba6 False 与 Visual Basic for Applications 版本 6.0 不兼容。
Vba7 True Visual Basic for Applications版本 7.0 兼容。
Vba7 False Visual Basic for Applications版本 7.0 不兼容。
Win16 False 不兼容 16 位。
Win32 True 兼容 32 位。
Win64 False 不兼容 64 位。
Mac True 是麦金托什。
Mac False 不是麦金托什。

在 64 位开发平台上,编译器常量的定义如下。

常量 指示开发环境...
Vba6 True Visual Basic for Applications版本 6.0 兼容。
Vba6 False 与 Visual Basic for Applications 版本 6.0 不兼容。
Vba7 True Visual Basic for Applications版本 7.0 兼容。
Vba7 False Visual Basic for Applications版本 7.0 不兼容。
Win16 False 不兼容 16 位。
Win32 True 兼容 32 位。
Win64 True 兼容 64 位。
Mac True 是麦金托什。
Mac False 不是麦金托什。

注意

[!注释] 这些常量由 Visual Basic 提供,因此您不可在任何级别以这些相同的名称定义您自己的常量。

另请参阅

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。