Excel VBA(1)「Option Explicit」ってなんだ?
|
![](https://kg-update.net/wp-content/uploads/2017/02/excelVBAlogo.jpg)
目次
モジュールの先頭に気が付くと記述されている。これはいったいなに?
(※環境設定によって自動的に記述されます。筆者は手動で記述しています。)
(1)変数の宣言を強制するもの
「Option Explicit」はここに記述されています![](http://kg-update.net/wp-content/uploads/2017/02/Exceloption1.jpg)
VBAでは、使用する変数の宣言を「Dim」文に記述します。上の例でも「ValueA」「ValueB」「ValueC」3つの整数型変数を宣言しています。「Option Explicit」文を記述すると、このような変数宣言が必ず必要となります。
スポンサードリンク
(2)変数宣言しなかった場合
(1)の例で、「ValueC」のみ変数宣言をしなかった場合はどうなるのでしょうか![](http://kg-update.net/wp-content/uploads/2017/02/Exceloption2.jpg)
「Option Explicit」文で変数宣言が強制されているため、コンパイルエラーとなります。
![](http://kg-update.net/wp-content/uploads/2017/02/Exceloption3.jpg)
(3)「Option Explicit」記述なしで変数宣言しなかった場合
(2)の例で「Option Explicit」文を削除してみます![](http://kg-update.net/wp-content/uploads/2017/02/Exceloption4.jpg)
![](http://kg-update.net/wp-content/uploads/2017/02/Exceloption5.jpg)
コンパイルエラーにならず実行できました。変数宣言していない「ValueC」は値が0ではないようです。
(4)宣言しなかった変数の正体
(3)の例で変数宣言していなかった「ValueC」は暗黙で「Variant型」として用意されています。「Variant型」には全てのデータ型を格納できます。![](http://kg-update.net/wp-content/uploads/2017/02/Exceloption6.jpg)
「ValueC」には文字列も格納できました。
![](http://kg-update.net/wp-content/uploads/2017/02/Exceloption7.jpg)
VBAで「Option Explicit」文を記述すると、変数の宣言が強制されます。
「Variant型」は便利ですが「多用は控えたほうがよい」とも聞きます。できれば変数型を意識したいものです。
スポンサードリンク
コメントを書き込む