VBAコード作成には[Option Explicit]を必ず設定しよう
この[Option Explicit]が書かれているモジュールでは
変数を使用する場合は
その変数を必ず宣言しなければならない
という一種、縛りのようなモノ付加する事が出来ます。
[Option Explicit]が書かれているのに、変数を宣言していないと、下記のようにVBAの処理を停止されてしまいます。
では、
[Option Explicit]が書かれていないとどうなるか?…
そうです、
たとえ変数が宣言されていなくても実行されてしまいます。
「それなら書かない方が便利」
なようにも思えてしまいますが、
実はそうでもありません。
[Option Explicit]は必ず書きましょう!
Sub 練習()
Dim EndLine1 As Long
Dim A, B, C, D, E As String
EndLine1 = 5
A = EndLine1
B = EndLine1
C = EndLinel
D = EndLine1
E = EndLine1
MsgBox A + B + C + D + E
End Sub
もしも、[Option Explicit]を設定せずに、
上のようなコードを実行した場合はどうでしょう。
5が格納されている「EndLine1」が5個有るのだから、
「25」が表示されるだろうと、
予想がたちますが、
実際表示されたのは「20」・・・あれ?
一見どこも間違っていなさそうですが、
パッと見ても分かりづらいのではないでしょうか?
では[Option Explicit]を設定して再度コードを実行すると…
と、言った具合に間違えを指摘してくれます。
これはまだまだVBAコードが短く単純なので良いですが、
長く複雑なコードになってくると、どこが間違えなのか?
むしろ間違っている事に気が付かない可能性が高く、
せっかく書いたコードなのに使えない、間違った結果が出てしまうコードになっている事さえありますから、是非設定しておく事をオススメいたします。
[Option Explicit]を自動で設定する
上の画像のようにすれば、モジュールを挿入した最初の段階で、自動で[Option Explicit]を付加してくれます。
念のため、文字でも記すと以下の手順で設定してください。
1.[ツール]タブ → [オプション]を選択
2.表示されたリストの
[編集]タブ → 【変数の宣言を強制する】にチェック→OK
以上になります。