次の方法で共有


#If...Then...#Else ディレクティブ

選択した Visual Basic コードのブロックを条件付きでコンパイルします。

構文

#IfThen
statements
[ #ElseIfexpression-nThen
[ elseifstatements ]]
[ #Else
[ elsestatements ]]
#End If

#If...Then...#Else ディレクティブの構文には、次の指定項目があります。

指定項目 説明
expression 必須。 1 つ以上の条件付きコンパイラ定数、リテラル、および演算子のみで構成された、True または False に評価される任意のです。
statements 必須。 関連付けられている式が True の場合に評価される Visual Basic プログラムの行またはコンパイラ ディレクティブです。
expression-n 省略可能。 1 つ以上の条件付きコンパイラ定数、リテラル、および演算子のみで構成された、True または False に評価される任意の式です。
elseifstatements 省略可能。 expression-nTrue の場合に評価される 1 つ以上のプログラム行またはコンパイラ ディレクティブです。
elsestatements 省略可能です。 前の expression および expression-n がいずれも True に評価されなかった場合に評価される 1 つ以上のプログラム行またはコンパイラ ディレクティブです。

解説

#If...Then...#Else ディレクティブの動作は If...Then...Else ステートメントと同じです。ただし、#If#Else#ElseIf、および #End If の各ディレクティブには単一行の形式がありません。したがって、これらのディレクティブと同じ行に他のコードを含めることはできません。

条件付きコンパイルは、通常、同じプログラムを異なるプラットフォーム用にコンパイルするために使用されます。 また、デバッグ コードが実行可能ファイルに表示されないようにするためにも使用されます。 条件付きコンパイルで除外されたコードは、最終的な実行可能ファイルから完全に削除されるため、サイズやパフォーマンスに影響を与えることはありません。

各評価の結果に関係なく、すべての式が評価されます。 したがって、式で使用されているすべての定数が定義されている必要があります。定義されていない定数は Empty として評価されます。

注:

Option Compare ステートメントは、#If ステートメントと #ElseIf ステートメントの式には影響を与えません。 条件付きコンパイラ ディレクティブの式は常に Option Compare Text で評価されます。

この例では、#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 のサポートおよびフィードバックを参照してください。