VBAではOption Explicitステートメントをモジュールの先頭に書くことにより
プログラムを実行する前に、すべての変数が宣言されていることをVBAが確認してくれます。
これにより、変数名の入力ミスを防ぐことができます。
下記のようなコードがあります。
1 2 3 4 5 6 7 8 |
Public Sub PrintValue() Value1 = 1 Value2 = 2 MsgBox Value1 + Valu2 End Sub |
- 変数Value1に1を代入
- 変数Value2に2を代入
- メッセージボックスにValue1とValue2を足した値を表示する。
短めのコードですが、コードを実行すると変数の名前「Value2」を「Valu2」と誤って入力しているため、Value1とValue2を足した3ではなく、Value1の値の1だけが表示されています。
Option Explicitを先頭に書いてValue1とValue2を宣言してからコードを実行します。
1 2 3 4 5 6 7 8 9 10 11 12 |
Option Explicit Public Sub PrintValue() Dim Value1 As Long Dim Value2 As Long Value1 = 1 Value2 = 2 MsgBox Value1 + Valu2 End Sub |
「コンパイルエラー: 変数が定義されていません。」と警告が表示されます。
Option Explicitステートメントにより、変数が明示的に宣言されているか確認しているためです。
エラーが発生している場所も表示されます。
短いコードであれば変数名の入力ミスにすぐに気が付きますが、長いコードを書くのであれば
Option Explicitは必ず書きましょう。
コメント