コンパイラ定数を使う場面は例えば、Access2007とAccess2000の両方で使うソフトを作成する場合、Access2007ではコンパイラエラーが発生するのにAccess2000では問題ない場合などに使用します
コンパイラとは入力したVBAコードをコンピュータの言語に変換することで、これにより余分なコードがなくなり実行速度が向上します。
■ 実行フォーム
Testボタンをクリックすると、クリックイベントが発生しコンパイラ定数を使用したコードが実行されます。
■ 実行結果のメッセージボックス
■ コンパイラ定数を使ったVBAの流れ
- #Const でコンパイラ定数を定義します
- #If でコンパイラ定数を判定
- #Else で#IfがFalseの場合に実行します。
- #Endif #ifを終了します。
このように Access2007特有のコードと、その他のバージョンのコードを分けコンパイラさせることでエラーを防止できます。
■ Access VBA 実行コード例
Option Compare Database
Option Explicit
#Const Access2007 = True
Private Sub コマンド0_Click()
#If Access2007 = True Then
MsgBox "Access2007でテスト中です。"
#Else
MsgBox "実行しています。"
#End If
End Sub