今年最後のワンポイント、しかもちょうど10回目なので基本中の基本 Option explicit について書きましょう。
通常マクロを書く場合、モジュールの最初に以下のように書いておくのは基本中の基本です。
Option Explicit
Sub Macro1()
Dim msg As String
msg = "基本"
Msgbox msh
End Sub
いないかもしれませんが、自分で打って動かしてみようとした方ごめんなさい!
これはコンパイルエラーになります。msgを間違えてmshとしている所があるからですね。ところが、Option Explicitを削除するとコンパイルエラーになりません。実行してみてはじめておかしな点に気付く事になります。これは場合によっては非常に見つけにくいバグになる事もあります。
有効範囲はそのモジュールのみです。モジュールがいくつかある場合に一つだけ忘れたなんてのはよくある話です。さらに、それにOption Explicit を追加したとたんコンパイルエラーになってしまったなんて事もよくありますね。