Option Explicitとは
モジュールの先頭行にOption Explicitを追加すると、
すべての変数を宣言してから使うことが必須となります。
これにより、タイプミスなどのケアレスミスに気づきやすくなります。
Option Explicitが必要な理由
以下はバグの例です。
Sub showlength()
Dim length As Long
length = 10
MsgBox lenght ' ←変数名が間違っている(lenghtになっている)
End sub
このように変数名をタイプミスしても、Option Explicitが明記されていれば、マクロ実行時に以下のコンパイルエラーが出ます。
コンパイルエラー:
変数が定義されていません
Option Explicitがない場合
もしOption Explicitを入れていないと、タイプミスした変数lenghtは新しい変数として自動的に作られます。
VBAでは宣言されていない変数はVariant型として扱われます。
その結果、MsgBoxは空白を表示し、エラーにはならず意図しない結果となります。
Option Explicitを自動で入れるための設定
- VBAエディタを開く
- メニューの「ツール」→「オプション」を押す
- 編集のタブで、「変数の宣言を強制する」にチェックを入れる
これで新しく作るモジュールにはOption Explicitが自動で追加されます。
まとめ
- Option Explicitを使うことで、未宣言の変数使用を防げる
- タイプミスにすぐ気づける
- 一度設定すれば自動で追加される