【VBA】Option Explicitで変数の宣言を強制する

Excel VBA

こんにちは!!まっしゅです。

Option Explicitって知ってますか?
マクロの一番上に記載してあるのを見たことがある方もいるかもしれません。

この記事は次のような人におすすめ
  • Option Explicitがなにか知らない人
  • これからVBAを勉強する人

この記事ではOption Explicitの意味と使い方について解説しています。

スポンサーリンク

Option Explicitとは?

この文字が記述されているモジュールでは変数を宣言しないと使えなくなります。

変数が何か分からない方はこちらの記事で変数について確認しましょう。

【VBA】日本語は使える?変数の使い方とルールについて解説!!
あまり聞き慣れない言葉ですが、VBAを上手く使う為には変数を知る必要があります。この記事では変数の使い方とルール、そもそも変数って何?変数名に日本語は使えるの?といった疑問について解説します!

変数は宣言しなくても使えてしまうのですが、宣言しない事で発生してしまうエラーもあります。

Option Explicitを使えば必ず変数を宣言しなければエラーとして教えてくれるので宣言漏れも発生しません。

一番よくあるのは変数の入力ミスですね。

例えば「name」という変数に氏名を入れて後で出力されるようなマクロを作っていたとしましょう。

出力の時にスペルミスで「naem」と記述してしまっていたりすると地獄が始まる訳です。

変数は宣言していなくても使用出来ますから、「naem」には値が入っていませんがエラーにはなりません。(空白だった時用の例外処理を記述している場合は除きます)

  1. エラーにならないからどこが間違っているのか分からない
  2. 値が消えているor代入出来ていない原因を探す
  3. 全然見つからない
  4. やっと見つけたと思ったら変数のスペルミス

全体で数百~数千行あるようなマクロでこれをやるとそれだけで一日が終わる事もあります。

スポンサーリンク

Option Explicitの使い方と設定方法

使い方

「Option Explicit」の使い方は簡単で、コードウィンドウの宣言セクションに記述するだけです。

VBE宣言セクションの画像

モジュールの先頭からプロシージャまでの空間が宣言セクションになっています。

画像内のOption Explicitとプロシージャの間に黒いラインがありますが、入力した際に自動で表示されるものです。

設定を変更している場合は表示されない場合があります。

オプションで自動入力の設定をする

正直な所、毎回Option Explicitと入力するのは手間ですしめんどくさいですよね。

実は自動で記述するように設定する事が出来ますが、初期設定では記述しないようになっています。

VBEのメニューバーから [ツール] → [オプション] を開きましょう。

下記の画面が表示されるので赤線を引いている「変数の宣言を強制する」にチェックを付け、OKをクリックすると毎回自動で記述してくれるようになります。

VBEのオプション画面

これからマクロを学習する方やまだ使っていないという方はこの機会に是非設定しておきましょう!!

スポンサーリンク

まとめ

変数の宣言をしない人は結構いますが、マクロを良く使うならいつか痛い目を見る日が来ます。

正直面倒ですもんね。iとかjとかもう何入ってるか分かってるんだからわざわざ宣言するの面倒な気持ちも分かります。

以前は私も変数を宣言しない側でしたが、一度痛い目を見てからはしっかり変数を宣言するようにしています。

面倒な作業を経験していない人からすると面倒に感じてしまうかもしれませんが、Option Explicitの設定をしておくだけで無用なエラーに頭を抱える事が無くなりますので、必ず設定しておく事をおすすめします。

コメント

タイトルとURLをコピーしました