こんにちは。ホームスタッフサービスのM田です。
今回もVBAのちょっとしたコツの紹介です。変数を宣言しておくことで、エラー発生時の見直しの無駄な時間が節約できるかも、というお話です。
Option Explicitは絶対に使うべき!
VBAでは変数を宣言せずに使うことができます。
ちょこっと試したりするときには便利です。しかし変数を宣言しないことで起こる理不尽(と人間が思える)エラーの弊害のほうが私は大きいと思います。Option Explicitはその弊害を回避してくれる安心のおまじないです。
変数名の打ち間違いで無駄な時間を過ごさなくてすみます
こんな経験はないでしょうか?
「PCがエラーを表示しているけど、何度見ても間違いがわからない。ググっても原因がわからない。よくよく調べ尽くして疲れてふと見たら、変数のスペルが間違ってた。」
私は何回もあります。なんなら今でもちょいちょい間違えます。
Option Explicitを使って変数を宣言しておくと、宣言されてない変数を使ったとき、つまり打ち間違えたときに発見しやすくなります。無駄な時間が減ります。
Option Explicitの役目
では変数を宣言することとOption Explicitの関係を見てみましょう。
変数を宣言する、ということ
「このプログラムでは、total_amountという変数を使います。その中に入れられるのは整数です」
これが変数を宣言するということです。VBAでは次のように書きます。
この宣言は次のようにも言い換えられます。
「このプログラムでは、total_amountという変数が使えます。その中には整数しか入れられません」
これは「制約」ですね。
制約をかけることによって自由度を減らすことは、間違って使うことを減らすことでもあります。
Option Explicitは「変数宣言の強要」
変数を宣言しなくても使用できるVBAに、「変数を使用するときは宣言しないとダメ。宣言してない変数は使えませんよ。」と強要するのがOption Explicitの役目です。
上のようにモジュールの一番最初に書いておくことで、Option Explicitは有効になります。
実行させたときに反転している箇所でエラーが発生しています。スペルに「e」が一つ多い、宣言していない変数をつかっている間違いです。エラーは発生しましたが、修正箇所はすぐにわかりました。
だいたいの場合プログラムのSubやFunctionの規模が大きくなればなるほど変数が増えていくので、そのぶん打ち間違いの可能性は増えていきます。Option Explicitを宣言しておくことで、宣言してない変数は使えない、つまりエラーが発生しますので、変数名の打ち間違いに気づきやすくなります。
変数名も工夫するとさらに便利に
さらに変数名をつけるときにちょっと工夫をすると、もっと打ち間違いのミスを減らすことができます。
VBAのエディターは、宣言している変数と同じスペルで入力すると、宣言している変数の形式に整えてくれます。
これを利用することで、「入力した変数が宣言されているかどうか」がすぐにわかります。スペルがあやふやなときも確かめることができるので便利です。
Option Explicitを使って変数を宣言して使用するクセをつけましょう
以上のようにOption Explicitを記述して変数を宣言してから使用することは、「ミスを未然に防ぐ」「エラーが起こったときに原因をつきとめやすい」ことにつながりますので、ぜひ利用してもらいたいです。
また、このクセはCやC#などのプログラミングをはじめるときにも役立ちます。
Option Explicitを使っている状態を「既定」に設定することもできます。
VBAのエディターのメニューバー>ツール>オプションで下記のウィンドウが開きます。
枠内のチェックを入れておくと、Option Explicitが自動的に宣言されます。ぜひ利用してください。
ちなみに「Explicit」の意味と反対語をついでに覚えておくと良いです。英語でプログラム関係の文書を読むとよく出てきます。
- explicit → 明示的な、明白な、はっきりした
- implicit→ 暗示的な、暗に示された、暗黙の
Option Explicitを使って、VBA開発を少しでも効率よく行いましょう!