なぜOption Explicitを最初につけておくべきなのか?

VBAは、変数をDimで宣言しなくても動く言語です。この仕様が便利に見える一方で、変数名の打ち間違いに気づけないまま処理が進んでしまう原因にもなります。

この記事では、Option Explicitがどのような問題を防いでくれるのか、そして最初の一行としてなぜ必要なのかを解説します。

Option Explicitとは何か

Option Explicitは、モジュール(module)の先頭に一行書いておくことで、宣言していない変数を使ったときにエラーを出す設定です。

Option Explicit

これをモジュールの一番上に書いておくと、Dimで宣言していない変数名がコード中に出てきた時点で、実行前にエラーとして知らせてくれます。

なぜ必要なのか:宣言なしで動いてしまうことの落とし穴

VBAはOption Explicitを書いていなければ、Dimで宣言していない変数でもそのまま使えてしまいます。変数名を書いた時点で、VBAが自動的にその名前の変数を作ってしまうためです。

この仕様には、見落としやすい問題があります。たとえば「dt」という変数名を使うつもりで、誤って「dtt」と入力してしまった場合、Option Explicitがなければエラーは出ません。VBAは「dtt」を新しい変数として解釈し、値が入っていない空の変数として扱ったまま処理を続けてしまいます。

結果として、エラーメッセージも出ないまま、意図した処理が実行されない状態になります。原因がタイプミスだと気づくまでに時間がかかりやすいのは、このためです。

Option Explicitを付けると何が変わるか

Option Explicitを書いておくと、宣言していない変数名を使った時点でコンパイルエラーが発生します。「dt」のつもりで「dtt」と書いてしまっても、実行前に「変数が定義されていません」というエラーで指摘されるため、原因の特定にかかる時間を大幅に減らせます。

Option Explicitを毎回自動でつける設定

VBEの設定を変更しておくと、新しく作るモジュールにOption Explicitを自動的に挿入できます。「ツール」→「オプション」→「編集」タブにある「変数の宣言を強制する」にチェックを入れておくと、以降作成する標準モジュールの先頭に、自動でOption Explicitが追加されるようになります。

押さえておきたいこと

① モジュールの先頭に一行書くだけで有効になる

Option Explicitは、モジュールの先頭(Subより上)に一行書くだけで有効になります。書く場所を間違えなければ、それだけで効果を発揮します。

② VBEの設定で自動的に付与されるようにしておく

「ツール」→「オプション」→「編集」タブの「変数の宣言を強制する」にチェックを入れておくと、新しく作るモジュールに自動でOption Explicitが挿入されます。書き忘れを防げます。

③ エラーが出たら、変数名の打ち間違いを疑う

Option Explicitを設定した状態で「変数が定義されていません」というエラーが出た場合、多くは変数名のタイプミスが原因です。Dimで宣言した名前と、実際にコード中で使っている名前を照合してください。

まとめ

Option Explicitは、モジュールの先頭に一行書くだけで、変数名の打ち間違いによる原因不明のバグを未然に防いでくれる設定です。コードを書く手間はほとんど増えず、後から発生しうる調査時間を大きく減らせます。

実際に変数やOption Explicitを使いながら1本のマクロを組み立てていく過程を体系的に学びたい方は、JIMOVEの動画講座もご活用ください。

よくある質問

Q. Option Explicitを付けないと、コードは動きませんか?

動きます。Option ExplicitはVBAの必須要素ではなく、あくまで安全対策としての設定です。ただし、変数名の打ち間違いに気づきにくくなるというリスクが残ります。

Q. 既存のコードに、後からOption Explicitを追加できますか?

できます。モジュールの先頭に一行追加するだけです。ただし、既存コードの中に宣言していない変数が使われている場合は、追加した時点でエラーが出るようになるため、該当箇所にDimを追加する対応が必要になります。

Q. 全てのモジュールに毎回手動で書く必要がありますか?

不要です。VBEの「ツール」→「オプション」→「編集」タブから「変数の宣言を強制する」を設定しておけば、以降新しく作るモジュールには自動的に追加されます。

動画で学びたい方へ

「記事を読んでも、実際に自分で書けるか不安…」という方には、動画で基礎からじっくり学べる講座がおすすめです。

VBAが初めての方を前提に、つまずきやすいポイントを先回りして解説しています。サンプル動画は無料でご覧いただけます。

動画で学ぶExcelマクロ|JIMOVEオンラインスクール

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール