編譯器常數
Visual Basic for Applications 會定義 常數 ,以搭配 #If...然後...#Else 指示詞。 這些常數在功能上相當於使用 #If定義的常數...然後...#Else 指示詞,不同之處在于它們在範圍內是全 局的;也就是說,它們會套用到專案中所有 位置。
注意事項
因為 Win32 在 32 位和 64 位開發平臺中都會傳回 True ,所以#If中的順序很重要 ...然後...#Else 指示詞會在您的程式碼中傳回所需的結果。 例如,因為Win32在 64 位環境中傳回True (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 支援與意見反應。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應