在編譯時更改程式碼行為
#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。