共用方式為


#If...Then...#Else 指示詞

條件式編譯選取的 Visual Basic 程式碼區塊。

語法

#If運算式Then
陳述式
[ #ElseIfexpression-nThen
[ elseifstatements ]]
[ #Else
[ elsestatements ]]
#End If

#If...Then...#Else 指示詞的語法具有以下幾個部分:

部分 描述
運算式 必要。 以獨佔方式包含一或多個條件式編譯器常數、常值和運算子的任何運算式,評估為 TrueFalse
statements 必要。 相關聯的運算式為 True 時,進行評估的 Visual Basic 程式行或編譯器指示詞。
expression-n 選用。 以獨佔方式包含一或多個條件式編譯器常數、常值和運算子的任何運算式,評估為 TrueFalse
elseifstatements 選用。 如果 expression-n 為 True,則會評估一或多個程式列或編譯器指示
elsestatements 選用。 如果沒有先前的運算式或expression-n為 True,則會評估一或多個程式列或編譯器指示

註解

#If...Then...#Else 指示詞的行為與 If...Then...Else 陳述式相同,例外之處在於 #If#Else#ElseIf#End If 指示詞沒有單行格式,也就是說,在任何指示詞的相同行上不能出現其他程式碼。

條件式編譯通常是用來針對不同平台編譯相同的程式。 它也會用來防止偵錯程式碼出現在可執行檔中。 條件式編譯期間排除的程式碼會在最終可執行檔完全省略,因此沒有大小或效能影響。

無論任何評估的結果為何,都會評估所有運算式。 因此,必須定義用於運算式的所有常數,任何未定義的常數都會評估為空白

注意事項

Option Compare 陳述式不會影響 #If#ElseIf 陳述式中的運算式。 條件式編譯器指示詞中的運算式一律會以選項比較文字進行評估。

範例

此範例參考 #If...Then...#Else 建構中的條件式編譯器常數,以判斷是否編譯特定陳述式。

' If Mac evaluates as true, do the statements following the #If. 
#If Mac Then 
 '. Place exclusively Mac statements here. 
 '. 
 '. 
' Otherwise, if it is a 32-bit Windows program, do this: 
#ElseIf Win32 Then 
 '. Place exclusively 32-bit Windows statements here. 
 '. 
 '. 
' Otherwise, if it is neither, do this: 
#Else 
 '. Place other platform statements here. 
 '. 
 '. 
#End If

另請參閱

支援和意見反應

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