VBAで変数の宣言を強制する

VBA では変数を使用するときに事前に宣言しておくことが推奨されていますが変数を宣言せずに利用してもエラートなりません。そこでモジュールの先頭で Option Explicit と記述すると、モジュール内では宣言されていない変数が使用できなくなります。ここでは VBA で変数の宣言を強制する方法について解説します。

(Last modified: )

変数の宣言を強制する

VBA では変数を使用する前に Dim を使用して変数を宣言しますが、宣言していない変数を使用してもエラーにはなりません。次の例を見てください。

Sub プロシージャ名()
    Dim x
    x = 10
    y = 16  ' 宣言していない変数を使用している
End Sub

変数 x は宣言したあとで変数に値を代入していますが、変数 y は宣言せずに変数に値を代入しています。デフォルトの VBA の設定ではこのように宣言していない変数であっても利用してもエラーにはなりません。

宣言していない変数を使用した場合にエラーになるように設定するには、モジュールの先頭に Option Explicit と記述します。

Option Explicit

先ほどのサンプルを次のように変更してみます。

Option Explicit

Sub プロシージャ名()
    Dim x
    x = 10
    y = 16  ' 宣言していない変数を使用している
End Sub

変数の宣言を強制する(1)

このプログラムを実行してみると「変数が定義されていません。」というエラーになります。

変数の宣言を強制する(2)

このように宣言していない変数を使用するとエラーとなり、必ず変数の宣言が必要になります。

自動的にOption Explicitを記述する

新しいモジュールを作成すると、自動的にモジュールの先頭に Option Explicit が記述されるように設定することができます。設定するには Visual Basic Editor の「ツール」をクリックし、表示されたメニューの中から「オプション」をクリックしてください。

自動的にOption Explicitを記述する(1)

「オプション」画面が表示されます。「編集」タブの中に「変数の宣言を強制する」というチェックボックスがあるのでチェックしてください。チェックが終わったら「OK」をクリックしてください。

自動的にOption Explicitを記述する(2)

これで新しいモジュールを作成すると自動的に Option Explicit が記述されるようになります。

それでは実際に試してみます。 Visual Basic Editor の「挿入」をクリックし、表示されたメニューの中から「標準モジュール」をクリックしてください。

自動的にOption Explicitを記述する(3)

「標準モジュール」が追加され、コードウィンドウにモジュールの内容が表示されました。すると先頭に自動的に Option Explicit が記述されました。

自動的にOption Explicitを記述する(4)

このようにモジュールを作成するたびに自動的に Option Explicit が記述されるようになり、変数を使用する場合は宣言が必要となります。

-- --

VBA で変数の宣言を強制する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。