mugaxのなんでも情報局

いろんな分野について発信していきます。

VBAでは、Option Explicit を必ず書こう

コードの先頭に Option Explicit を必ず書いておこう。これを書いておけば、変数の宣言が強制される。つまり、宣言していない変数は使えなくなる。

なぜ、変数の宣言を強制するべきなのかというと、もし宣言を強制していないと、スペルミスをしたときに新たな変数と認識されてしまい、バグの原因になるからだ。

一方、Option Explicit により宣言が強制されていれば、スペルミスをした場合でもコンパイル時に「変数が定義されていません」というエラーメッセージが出るので、バグを防げるのだ。

幸い、VBAのエディター(VBE)には、自動的に Option Explicit を記入してくれる便利な機能がある。

[ツール]→[オプション]→[編集タブ]→変数の宣言を強制する にチェックを入れておけば、コード記入用のモジュールの先頭に自動的に Option Explicit を記入してくれるのだ。必ず設定しておこう。

ちなみに、変数の型もできるだけ指定した方がいいだろう。型を指定することにより、変数の用途が明確になりバグを減らすことができるし、実行速度が向上するからだ。

よくありがちなのが、複数の変数を宣言するときに

'よくない書き方
Dim i, j As Long

のようにまとめて書く方法だ。しかし、これは、iに関しては型を指定していないことになりVariant型になってしまう。正しくは、

'正しい書き方
Dim i As Long, j As Long

と書くべきなのだ。