エクセルまにあ
超初心者のためのエクセル入門講座 

変数の宣言

変数の型で説明した通り、VBAマクロでは変数を使う前にまず宣言をすることが推奨されています。しかし、人間というのは横着なものなので、ついつい宣言せずに変数を使ってしまい、後でバグに苦しむということがよくあります。

このようなことを防ぐため、強制的に変数を宣言させる仕組みが用意されています。

それが、Option Explicit というキーワードです。ファイルの先頭にこの一行を加えておくと、そのファイルの中では宣言していない変数を使えなくなります。Option Explicit を指定したプログラムの例を示します。

Option Explicit

Sub Test()
    Dim  X As Integer
    X = 3
    A = 5    ' ← エラーになる
    ・・・
End Sub

このように、一番はじめに Option Explicit と書いておくと、変数の宣言が必ず必要となります。プログラムの中に A =5 という行がありますが、A という変数は宣言されていないため、このプログラムを実行しようとするとエラーになり実行出来ません。

Option Explicit を使えば、宣言していない変数をうっかり使ってしまうというミスを防ぐことが出来ますので、特に事情がない限りは必ず指定するようにしましょう。

Option Explicit のメリットがよく分かる例をひとつ示します。

Sub Test()
    Dim  NumberOfExpressions As Integer
    Dim  N As Integer
    NumberOfExpressions  =  5
    N = NumberOfExplessions  +  3
    ・・・
End Sub

このプログラムでは、NumberOfExpressions という長い名前の変数を宣言し、そこに 5 を代入しています。そして、その値に 3 を足したものを変数 N に代入しています。
Option Explicit を指定していない場合、このプログラムを実行すると特にエラーは表示されず、一見正常に動作します。しかし、実は重大なバグが潜んでいるのです。

N = NumberOfExplessions  +  3 のところで使われている NumberOfExplessions の綴りをよく見て下さい。Expressions の中の r が、間違って l になっています。単純なケアレスミスなのですが、プログラミングにおいてこれは致命的です。一文字違えばプログラムは正常に動作してくれません。

絶対にあってはいけないミスなのですが、変数名がこのくらい長くなると、人間の目でこれを発見するのはかなり難しいと言えます。そこで登場するのが Option Explicit なのです。

もしこのプログラムの先頭で Option Explicit を指定していれば、N = NumberOfExplessions  +  3 の行でエラーが発生するのです。何故かというと、NumberOfExplessions と NumberOfExpressions はスペルが違うため違う変数と見なされ、NumberOfExplessions という宣言されていない変数を使おうとしたと見なされるからです。このようなエラーが発生すれば、その部分を注意深く見ることで、人間にもこの間違いが発見出来ます。

このように Option Explicit は非常に有用なものです。最初は面倒に感じることも多いと思いますが、自分のためですから常に指定するように習慣付けましょう。

定数 >>