ExcelやAccessのVBAでは、変数を宣言しなかった場合は、Variant型になり、どんな値でも代入できるため、エラーにはなりませんが、メモリーを余分に消費します。
逆に変数を適切なデータ型で宣言すると、メモリーの消費を最小限にできるメリットがあります。
また変数に値を代入する時に、データ型が適切かチェックしてくれるので、バグを防ぐ効果もあります。
したがって変数は、必ず宣言してから使うようにしましょう。
実は、VBAのプログラムでは、「変数の宣言を強制する」ことができます。
変数の宣言を強制すると、変数を宣言しないで使おうとした場合、以下のようなエラーメッセージが表示されるようになります。
するとプログラマーが、変数を宣言していないことに気付くので、とても便利です。
VBAプログラムで、変数の宣言を強制するには、以下の2つの方法があります。
■方法1 直接コードを記述する。
【1】Excelのファイル「メール送受信.xls」を開きます。
*マクロを有効にする
【2】VBEを起動します。
*「Altキー」+「F11キー」
【3】フォーム「frm送信」のコードを表示します。
【4】宣言セクションの先頭に、以下の1行を追加します。
Option Explicit
たったこれだけです。
【5】VBEを保存して、閉じます。
この方法は簡単ですが、全てのフォームモジュールの宣言セクションに、手作業で追加する必要があります。
そこで、これから新しく作成するフォームには、自動的に挿入される方法も説明しておきます。次の「方法2」をご覧ください。
■方法2 VBEのオプションで設定する。
【1】Excelのファイル「メール送受信.xls」を開きます。
*マクロを有効にする
【2】VBEを起動します。
*「Altキー」+「F11キー」
【3】VBEのメニューから、「ツール → オプション」の順で選択します。
【4】編集タブにある「変数の宣言を強制する」を確認してください。
この項目にチェックが入っていないと、変数を宣言しなくても使えます。
【5】チェックを入れて、「OK」ボタンをクリックします。
【6】VBEを保存して、閉じます。
【7】Excelを一度終了し、再起動すると設定が反映されます。
ただしこの方法だと、反映されるのは、今後作成するモジュールについてだけです。
新しいモジュールには、「Option Explicit」が自動的に挿入されます。
既存のフォームモジュールは、「方法1」のように、手作業で記述する必要があるので、注意してください。