该#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通过转至工具>> [您的项目名称]项目属性来为项目全局声明。这将打开项目属性对话框,我们将在其中输入常量声明。在“条件编译参数”框中,键入[constName] = [value]。您可以输入多个常数,方法是使用冒号将它们分开,例如[constName1] = [value1] : [constName2] = [value2]。
预定义常量
一些编译常量已经预先定义。哪个版本取决于运行VBA的Office版本的位数。请注意,Vba7与Office 2010一起引入,以支持64位版本的Office。
不变 | 16位 | 32位 | 64位 |
---|---|---|---|
Vba6 | 假 | 如果Vba6 | 假 |
Vba7 | 假 | 如果Vba7 | 真正 |
Win16的 | 真正 | 假 | 假 |
Win32的 | 假 | 真正 | 真正 |
Win64的 | 假 | 假 | 真正 |
苹果电脑 | 假 | 如果是Mac | 如果是Mac |
请注意,Win64 / Win32是指Office版本,而不是Windows版本。例如,即使OS是Windows的64位版本,在32位Office中Win32 = TRUE。