メインコンテンツへスキップ
VBAでOption Explicitを書くべきか?

VBAでOption Explicitを書くべきか?

·2 分
Programming VBA
かずさプログラマー
著者
かずさプログラマー
業務の作業自動化を行っています。Go、VBA、Pythonを主に使用しています。過去にはC#、VB.Net、JavaScriptも使用していました。

VBAではOption Explicitをモジュールの先頭に書くことにより、プログラムを実行する前に、 すべての変数が宣言されていることをVBAが確認してくれます。
これにより、変数名の入力ミスを防ぐことができます。

下記のようなコードがあります。

Public Sub PrintValue()

  Value1 = 1
  Value2 = 2

  MsgBox Value1 + Valu2

End Sub
  1. 変数Value1に1を代入
  2. 変数Value2に2を代入
  3. メッセージボックスにValue1Value2を足した値を表示する。

短めのコードですが、コードを実行すると変数の名前Value2Valu2と誤って入力しているため、 Value1Value2を足した3ではなく、Value1の値の1だけが表示されています。

Option Explicitを先頭に書いてValue1Value2を宣言してからコードを実行します。

Option Explicit
Public Sub PrintValue()

  Dim Value1 As Long
  Dim Value2 As Long

  Value1 = 1
  Value2 = 2

  MsgBox Value1 + Valu2

End Sub

「コンパイルエラー:変数が定義されていません。」と警告が表示されます。
Option Explicitステートメントにより、変数が明示的に宣言されているか確認しているためです。

エラーが発生している場所も表示されます。

短いコードであれば変数名の入力ミスにすぐに気が付きますが、長いコードを書くのであれば Option Explicitは必ず書きましょう。

関連記事

VBA エディターのおすすめ設定
·3 分
Programming VBA