Excel VBA(1)「Option Explicit」ってなんだ?
|

目次
モジュールの先頭に気が付くと記述されている。これはいったいなに?
(※環境設定によって自動的に記述されます。筆者は手動で記述しています。)
(1)変数の宣言を強制するもの
「Option Explicit」はここに記述されています
VBAでは、使用する変数の宣言を「Dim」文に記述します。上の例でも「ValueA」「ValueB」「ValueC」3つの整数型変数を宣言しています。「Option Explicit」文を記述すると、このような変数宣言が必ず必要となります。
スポンサードリンク
(2)変数宣言しなかった場合
(1)の例で、「ValueC」のみ変数宣言をしなかった場合はどうなるのでしょうか
「Option Explicit」文で変数宣言が強制されているため、コンパイルエラーとなります。

(3)「Option Explicit」記述なしで変数宣言しなかった場合
(2)の例で「Option Explicit」文を削除してみます

コンパイルエラーにならず実行できました。変数宣言していない「ValueC」は値が0ではないようです。
(4)宣言しなかった変数の正体
(3)の例で変数宣言していなかった「ValueC」は暗黙で「Variant型」として用意されています。「Variant型」には全てのデータ型を格納できます。
「ValueC」には文字列も格納できました。

VBAで「Option Explicit」文を記述すると、変数の宣言が強制されます。
「Variant型」は便利ですが「多用は控えたほうがよい」とも聞きます。できれば変数型を意識したいものです。
スポンサードリンク
コメントを書き込む