Visual Basic for Applications 定義了常 數 ,僅供 #If...然後......#Else 指令。 這些常數在功能上等價於以 #Const 指令定義的常數,但其 範圍是全域的;也就是說,它們適用於 專案的每個角落。
注意事項
由於 Win32 在 32 位元與 64 位元開發平台上都回歸 True ,因此 #If 內的順序非常重要 ......然後......#Else 指令會 回傳你想要的結果。 例如,由於 Win32在 64 位元 (Win32 在 Win64 環境中) 相容,若在 Win64 前檢查 Win32,則 Win64 條件從未執行,因為 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 支援與意見反應。