もくじ

taka



最新記事 by taka (全て見る)
- 『雑記』最近の私の話~ - 2019年9月26日
- 【動画】自作パソコン構成変更!ケースをNZXT H500に交換しました! - 2019年6月5日
- VBA 『Array関数』指定した要素で配列を作成する - 2019年5月23日
- 「動画」初完全ワイヤレスイヤホン『Jabra Elite Active 65t』 - 2019年5月17日
- VBA 日付で令和を簡単に判定してみよう - 2019年5月7日
どうも、taka(@takabou63)です(^^♪
さて、みなさんはネットでVBAのソースを見る機会があると思います。
その中で、一度は「Option Explicit」という一文を見たことがあるのではないでしょうか?


ですが、私の周りにはこの「Option Explicit」がどのような物なのかを理解していない人がいるので、今回は「Option Explicit」とはどのような物なのか、についてご紹介していきたいと思います(^^♪
実は変数に関係している!【Option Explicit】
はい、実はこの「Option Explicit」というのは実は「変数」に大きくかかわってくるんです(;・∀・)
どういうことか?
実は「Option Explicit」がモジュールに書かれている場合では、「変数を宣言しないと使えないですよ~」という印みたいなものなんです(*_*;
例えば下記のコードを実行した場合、変数[res]が宣言されていません。なのでこのコードはエラーになってしまうんです(*_*;
Option Explicit Sub sample() res = "わいわい" MsgBox res End Sub


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


では、なぜ「Option Explicit」は使用必要といわれているのか
簡単に説明していきます。
Option Explicitの使い道「スペルミスを防いでくれるから」
私が思うにこの「Option Explicit」を宣言する理由はこれ!
変数のスペルミスを見つけやすくするため
ではないでしょうか?
いくら熟練のプログラマーでもミスはしてしまいます、スペルミスなど些細なミスでもエラーで動かなくなってしまうのがプログラムです。
そういう些細なミスを見つけやすくするために宣言するのがこの「Option Explicit」なのです。
例えば下記のようなプログラムがあったとします。下記のプログラムは「res」という変数に「わいわい」という文字列を代入するわけですが、メッセージボックスで表示させるのは「sre」という宣言されていない変数です、これを実行するとどうなるのか?
Sub sample() Dim res As String res = "わいわい" ’sreなんて変数はない。 MsgBox sre End Sub


メッセージボックスは何も表示しない状態で動作してしまいました(*_*;
実際このような形で動作してしまうと正直焦りますよね、自分では正しく書いているつもりなんですから(;・∀・)
では「Option Explicit」が書かれているコードを実行するとどうなるのか?
Option Explicit Sub sample() Dim res As String res = "わいわい" MsgBox sre End Sub


はい、「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が自動入力されます。


フォロー・チャンネル登録お願いします
VBA以外についてのブログはこちら↓
https://yb-log.com/■Twitterフォロー
Follow @taka_pc1027■YouTubeチャンネル登録
コメントを残す