在编译时更改代码行为
#Const
指令用于定义自定义预处理器常量。#If
稍后可以使用它们来控制编译和执行哪些代码块。
#Const DEBUGMODE = 1
#If DEBUGMODE Then
Const filepath As String = "C:\Users\UserName\Path\To\File.txt"
#Else
Const filepath As String = "\\server\share\path\to\file.txt"
#End If
这导致 filepath
的值被设置为 C:\Users\UserName\Path\To\File.txt
。删除 #Const
线,或将其更改为 #Const DEBUGMODE = 0
将导致 filepath
设置为 \\server\share\path\to\file.txt
。
#Const 范围
#Const
指令仅对单个代码文件(模块或类)有效。必须为你希望使用自定义常量的每个文件声明它。或者,你可以通过工具>> [你的项目名称]项目属性为你的项目全局声明 #Const
。这将打开项目属性对话框,我们将在其中输入常量声明。在条件编译参数框中,键入 [constName] = [value]
。你可以通过用冒号分隔它们来输入多于 1 个常量,例如 [constName1] = [value1] : [constName2] = [value2]
。
预定义的常量
一些编译常量已经预先定义。哪些存在将取决于你运行 VBA 的办公室版本的位数。请注意,Vba7 是与 Office 2010 一起引入的,以支持 64 位版本的 Office。
不变 | 16 位 | 32 位 | 64 位 |
---|---|---|---|
VBA6 |
假 | 如果是 Vba6 | 假 |
VBA7 |
假 | 如果是 Vba7 | 真正 |
Win16 |
真正 | 假 | 假 |
Win32 |
假 | 真正 | 真正 |
Win64 平台 | 假 | 假 | 真正 |
苹果电脑 | 假 | 如果 Mac | 如果 Mac |
请注意,Win64 / Win32 是指 Office 版本,而不是 Windows 版本。例如,32 位 Office 中的 Win32 = TRUE,即使操作系统是 64 位版本的 Windows。