Option Explicit とは、
これを先頭につけておくと、使用する変数は予め宣言
しておかなければならない、という制限を設けるための
オプション設定です。
結論から言ってしまうと、
一般のExcelユーザーの人が作るVBAプログラムで
わざわざこのような Option Explicit という
オプションをつける必要は、全くありません!
ネット上には、よく
Option Explicit は必ず付けるべきた!
と言っている人が大勢いますが、
それはあくまで我々プロ(か、それに準ずる
セミプロのレベルの人)の中での話であって、
プログラム作りを本業とはしていない一般の
Excelユーザーの方々が、より早く、より簡単に、
自分のExcel作業を自動化するための目的で
マクロを作りたいという場合に、そんな(標準
ではない)オプションの指定をするのは全く
無意味です。(と言うか、逆効果なだけです。)
そもそも、
より手軽に簡単に、誰でもプログラムが作れるように!
ということで開発された簡易言語であるBasic言語
(VBAのBの部分に当たる)に、
わざわざ自ら要らんオプションルールを科し、
プログラミングのハードルを上げてしまうような
設定をするということ自体、
実にナンセンスとしか言いようのない話だと思います。
素人プログラマーであるならば、(当の製造元のMS社も
一般のOfficeユーザーが手軽に作れるプログラミング環境
としてVBAを提供し、このような設定は標準でなく
わざわざオプション設定としているわけですから、)
VBAはあくまで、少なくとも一般のユーザーレベルで利用
する場合には、本来のベーシックな簡易言語としてとらえ、
その特性を生かしてより手軽なものとして利用するべきだと
思うわけです。
確かに私も、
社内外の技術系社員に対してVBAを教える場合には、
この Option Explicit というオプションは必ず付けなさい!
と教えていますし、
お客様に依頼されてVBAのソフトを製造する場合には、
当然、必ずこのオプションはつけて開発を行っているわけ
なんですが、
自分や社内で使うちょっとした便利ツールをVBAで作る
際には、
いちいち Option Explicit をつけて変数を宣言して・・・
なんて、時間の余計に掛かる作り方はしません。
まぁ要するに、(当講座の中でもよく言っていることですが、)
プロのプログラマーと、プログラム作りが本業ではない素人
のプログラマーとでは、当然、プログラムの作り方というのは
違ってしかるべきなのです。
なのに、
素人プログラマーがプロと同じ作り方の「マネ」をしよう
とするから、(しいては、プロの方も素人に対して自分達
プロのやり方をマネさせようとするからゆえに)
必要以上に難しくなり、失敗し、挫折し、(*_*)...
ということになってしまう初心者が非常に多いわけです。
ベーシックな言語のBasic言語というのは、言うなれば
イージーでアバウトな言語ということですので、
(特別な場合を除いていちいち変数を定義しなくても
よいという仕組みになっているものなので)
それを自らわざわざ余計なオプションを設定して難しくし、
よりハードルを上げてしまう、という理由などまったく
ないわけです。
あなたが、プロのプログラマーを目指しているという人では
ない限り、初心者が自ら不用意にそのハードルを上げるような
オプション設定をしてはなりません!
(もし、プロを目指しているのであれば話は別です。)
私自身にしても、自分で使う便利マクロを作るといった場合には、
(お客さんからの依頼で作る場合の使う変数一つ一つの定義まで
を詳細に行いながら、神経を尖らして作る場合とは違って、)
Option Explicit なんてものをつけないで(変数の定義なんて
いちいちやらなくてよい方法で)、
気楽に、楽しく、アバウト感覚のイージーなVBAマクロの
プログラム作りというのを楽しんでいます。
【無料】7日間メールセミナー(手軽に始める1日10分のマクロ講座)
「お昼休みに始めよう」プロジェクト参加者登録受付中です!
こちらから→ 「Go! Go! エクセルマクロをはじめよう!」ホーム
非常にVBAの勉強になります。ありがとうございます。