VBA 【Option Explicit】について



The following two tabs change content below.

taka

あることがキッカケでVBAを独学で勉強しました、今ではブログを通してVBAでできることを解説しつつ、VBAや他の言語の勉強、ブログ運営の勉強をしています(^^♪

どうも、takaです(^^♪

さて、みなさんはネットでVBAのソースを見る機会があると思います。

その中で、一度は「Option Explicit」という一文を見たことがあるのではないでしょうか?

ですが、私の周りにはこの「Option Explicit」がどのような物なのかを理解していない人がいるので、今回は「Option Explicit」とはどのような物なのか、についてご紹介していきたいと思います(^^♪

実は変数に関係している!【Option Explicit】

はい、実はこの「Option Explicit」というのは実は「変数」に大きくかかわってくるんです(;・∀・)

どういうことか?

実は「Option Explicit」がモジュールに書かれている場合では、「変数を宣言しないと使えないですよ~」という印みたいなものなんです(*_*;

例えば下記のコードを実行した場合、変数[res]が宣言されていません。なのでこのコードはエラーになってしまうんです(*_*;

逆に「Option Explicit」が記載されていないコードの場合動作をしてしまうんです

では、なぜ「Option Explicit」は使用必要といわれているのか

簡単に説明していきます。

Option Explicitの使い道「スペルミスを防いでくれるから」

私が思うにこの「Option Explicit」を宣言する理由はこれ!

変数のスペルミスを見つけやすくするため

ではないでしょうか?

いくら熟練のプログラマーでもミスはしてしまいます、スペルミスなど些細なミスでもエラーで動かなくなってしまうのがプログラムです。

そういう些細なミスを見つけやすくするために宣言するのがこの「Option Explicit」なのです。

例えば下記のようなプログラムがあったとします。下記のプログラムは「res」という変数に「わいわい」という文字列を代入するわけですが、メッセージボックスで表示させるのは「sre」という宣言されていない変数です、これを実行するとどうなるのか?

メッセージボックスは何も表示しない状態で動作してしまいました(*_*;

実際このような形で動作してしまうと正直焦りますよね、自分では正しく書いているつもりなんですから(;・∀・)

では「Option Explicit」が書かれているコードを実行するとどうなるのか?

はい、「sre」という変数は定義されていないというように表示をしてくれました(^^♪

今回はすごく単純なコードなので、すぐ見つけることが可能でしたが、1000行とかの規模になってくると見つけるのも大変です(;・∀・)

「0(ゼロ)」と「O(オー)」だったり「1(イチ)」と「I(アイ)」のような打ち間違えがあった場合見つける自信がありますか?(*_*;

「Option Explicit」はそういう時に使うものなんです(^^♪

結局Option Explicitは必要?

さて、大体のウェブサイトではOption Explicitは必須とされているようですが、私個人の意見で言わせていただきますと、私は正直どっちでもいいと思っています( *´艸`)

確かに「これからVBAで仕事する!」というようなプロの方(今どきはいないでしょうが)であれば必要だと思いますが、今のVBAの使われ方の主流は、「自分が楽になるためのツール」だと思いますので、自分が使うためだけのツールレベルなら別に無理に宣言しなくても良いと思います(*_*;

ですが、上記で説明したように、Option Explicitをうまく使えばうまく動作しない理由を見つける手助けになる可能性があるのも事実ですのでそこだけは覚えOption Explicitておきましょう(^^)/

おまけ:Option Explicitをすべてのモジュールに適用する方法

さて、Option Explicitを使用したいと思った方向けにおまけです(笑)

新しくモジュールを追加するたびに宣言セレクションへOption Explicitを追加するのは正直めんどくさいですよね?(*_*

これをすべてのモジュールに自動で記述してくれる設定がありますのでよろしければ活用してください(笑)

まず、VBEを開いて、「ツール」から「オプション」を開くと、ダイアログボックスが表示されます。

そのダイアログボックスの「編集」タブ内に[変数の宣言を強制する]という項目がありますんので、これをオンにするとこれ以降に挿入されたすべてのモジュールの先頭にOption Explicitが自動入力されます。

 

ファイルやコードの利用、WEBサイトの利用について

サンプルコードなどは当サイトの免責事項をよくお読みになってからお使いください。

Twitterフォロー

 

Twitterもやってます(^^♪ Excelについてはあまり触れませんがブログの更新のお知らせはツイートしています(^^♪

 

コメントを残す

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