Share via


編譯器常數

Visual Basic for Applications 會定義 常數 ,以搭配 #If...然後...#Else 指示詞。 這些常數在功能上相當於使用 #If定義的常數...然後...#Else 指示詞,不同之處在于它們在範圍內是全 局的;也就是說,它們會套用到專案中所有 位置

注意事項

因為 Win32 在 32 位和 64 位開發平臺中都會傳回 True ,所以#If中的順序很重要 ...然後...#Else 指示詞會在您的程式碼中傳回所需的結果。 例如,因為Win32在 64 位環境中傳回True (Win32Win64環境中) 相容,所以在Win64導致Win64條件永遠不會執行之前檢查Win32,因為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 為 Macintosh。
Mac False 不是 Macintosh。

在 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 為 Macintosh。
Mac False 不是 Macintosh。

注意事項

這些常數是由 Visual Basic 所提供,因此您無法在任何層級使用這些相同名稱定義自己的常數。

另請參閱

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應