編譯器常數
Visual Basic for Applications 會定義 常數 ,以搭配 #If...然後...#Else 指示詞。 這些常數在功能上等同於使用 #Const 指示詞定義的常數,不同之處在於它們在範圍中是 全域的;也就是說,它們會套用到專案中所有 位置。
注意事項
因為 Win32 在 32 位和 64 位開發平台中都會傳回 True ,所以 #If 中的順序很重要 ...然後...#Else 指示詞會在您的程式代碼中傳回所需的結果。 例如,因為 Win32在 64 位 (Win32 會在 Win64 環境中) 相容,所以在 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 支援與意見反應。