【VBAマクロ】Option Explicitとは?使い方と設定方法をわかりやすく解説

スポンサードリンク
VBA

VBA(Visual Basic for Applications)を使ってプログラミングをする際、
エラーを未然に防ぐために 「Option Explicit」 を設定することが推奨されています。

しかしながら、VBA初心者の方の中には、「Option Explicitとは何か?」「なぜ使うべきなのか?」と疑問を持つ方も多いことと思います。

本記事では、Option Explicitの基本的な概念、使い方、設定方法、メリット・デメリット について詳しく解説します。

-著者情報-
名前:Utatane
VBA(マクロ)歴:3年
エクセル使用歴:15年以上
ひとこと:初心者だった当時に戻った気持ちになって解説いたします

スポンサードリンク

Option Explicitとは?

Option Explicitとは、VBAにおいて変数の宣言を強制するためのオプションです。
通常、VBAでは変数を宣言しなくても使用できますが、
Option Explicit を有効にすると、宣言していない変数を使用することができなくなります。

  • 通常:宣言していない変数も使用可
  • Option Explicitを有効にする:宣言していない変数は使用不可
過去の自分
過去の自分

変数を宣言しない方がラクなのに、
なぜ「Option Explicit」が必要なの?

今の自分
今の自分

そう思いますよね。
次項で理由を解説いたします。

スポンサードリンク

Option Explicitが必要な理由

「Option Explicit」が必要なのは、予期せぬ結果を防ぐためです。

例えば下記のようなコードを書いたとします。

Sub サンプル()
    x = 10  ' 変数を宣言していない/VBAは「x」という変数を作成
    y = 20  ' 変数を宣言していない/VBAは「y」という変数を作成
    MsgBox x + y
End Sub

まだ「Option Explicit」を有効にしていないため、変数を宣言していなくても動きます。

実行結果

しかしながら、変数名を「y」ではなく、「w」というように、間違って書いてしまった場合はどうでしょうか。

Sub 間違った例()
    x = 10  ' 変数を宣言していない/VBAは「x」という変数を作成
    w = 20  ' 変数を宣言していない/間違ったが、VBAは「w」という変数を作成
    MsgBox x + y ' yは存在しない変数のためスキップされる
End Sub
間違った例の実行結果

4行目で登場した「y」は存在しない変数のため、VBAが認識できずスルーされてしまいます。
今回のようにエラーが出ない場合もあり、気付かずに進めると予期せぬ結果になることがあります。

異変に気付いたとしても、大きなプログラムの場合、原因をつきとめるのに苦労することが多いです。

「Option Explicit」を有効にすることで、これらの不具合を大幅に減らすことができます。
では、「Option Explicit」を有効にする方法を見ていきましょう。

スポンサードリンク

Option Explicitを有効にする方法

「Option Explicit」を有効にするには、モジュールの先頭(プロシージャ外)に「Option Explicit」と記述するだけです。「モジュール、プロシージャとは?
下記のVBAコードを見てください。

Option Explicit ' Option Explicitを有効にする

Sub 間違った例()
    Dim x As Integer  ' 変数を宣言
    Dim y As Integer  ' 変数を宣言
    x = 10
    w = 20 ' 記述間違い/エラーになる
    MsgBox x + y
End Sub

1行目に「Option Explicit」を記述しています。
これでモジュール内のマクロは、宣言していない変数が使えなくなります。

3行目に前項の間違った例をコピーし、変数の宣言を追加しています。
実行してみましょう。

Option Explicitを有効にした場合の結果

変数「w」が宣言されていないため、エラーが出ました。
これで予期せぬ結果にならずに済みます。

「Option Explicit」は必ずプロシージャ外に記述してください。
プロシージャ内に記述すると、エラーが発生して動きません。

Option Explicitをプロシージャ内に記述した場合の結果

新規モジュールに自動で適用する

モジュールをたくさん作成する場合、毎回「Option Explicit」を記述するのは面倒ですよね…。
そんな場合は、自動で「Option Explicit」を適用することができます。
モジュールを新規作成する場合に限定されます

1.「VBA Project」上部のメニューから、「ツール」→「オプション」をクリックします。

手順1

2.「オプション」画面が開きますので、「変数の宣言を強制する」にチェックを入れてください。

手順2

これで以降に新規作成したモジュールには、自動で「Option Explicit」が記述されます。
モジュールを新規作成してみましょう。

手順3

「Option Explicit」が記述されたモジュールが作成されました。

スポンサードリンク

Option Explicitのメリット・デメリット

Option Explicitを有効にした場合のメリット・デメリットをまとめてみました。

【Option Explicitを有効にした場合のメリット

  • タイプミス防止:変数名を誤って記述するとエラーが発生し、すぐに気づくことができる
  • コードの可読性向上:どの変数が使用されているのか明確になる
  • バグの早期発見:未宣言の変数を使用するとエラーが出るため、実行前に問題を発見しやすい
  • パフォーマンスの向上:適切なデータ型を指定することで、処理速度が向上する可能性がある

【Option Explicitを有効にした場合のデメリット

  • 記述が増える:すべての変数を宣言する必要があるため、記述が増える
  • 試作や一時的な検証がしづらい:仮コードでも宣言が必要なため、面倒になる

正直なところ一長一短です。
大きなプログラムの場合はメリットが大きいため、積極的に活用することをおすすめします。

スポンサードリンク

最後に

VBAのOption Explicitについて解説いたしました。

当ブログでは、VBAマクロやPythonなど、時間を生み出すプログラミング術を公開しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。

最後までお読みいただき、ありがとうございました。がんばってください!

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