コンパイラ定数

Visual Basic for Applications では、#If...Then...#Else ディレクティブのみで使用するための定数が定義されています。 これらの定数は機能的には #If...Then...#Else ディレクティブで定義されている定数と同じですが、スコープ内でグローバルである点が異なります。つまりプロジェクトのすべての場所に適用されます。

注:

32 ビットと 64 ビットの両方の開発プラットフォームの Win32True を返すので、#If...Then...#Else ディレクティブ内の順序がコードで必要な結果を返すことが重要です。 たとえば、Win32 は 64 ビットで True を返すので (Win32Win64 環境で互換性があります)、Win64 より前に Win32 を調べると、Win32True を返すため、Win64 の条件が実行されません。 次の順序では、予測可能な結果が返されます (これは 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 のサポートおよびフィードバックを参照してください。