编译器常量
Visual Basic for Applications定义了用于 #If 的独占常量...Then...#Else 指令。 这些常量在功能上等效于使用 #Const 指令定义的常量,只是它们在范围内是全局 的;也就是说,它们应用于 项目中的任意位置。
注意
由于 Win32 在 32 位和 64 位开发平台中都返回 True ,因此,在 #If...Then...#Else 指令在代码中返回所需的结果。 例如,由于 Win32在 64 位 (Win32 在 win64 环境中) 兼容,因此在 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。