教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA 基本操作】明示的な変数宣言(Option Explicit)について教えて!

f:id:m_kbou:20201110161723p:plain

明示的な宣言(Option Explicit)は、変数を使用するプログラミングを行う上では欠かせない宣言となります。上手く使えば変数のスペルミスやプログラムの動作不具合(原因・理由)を早期に発見する手助けとなります。この明示的な宣言の使い方について紹介します。

 

 

構文

記述方法は以下の通りとなります。

Option Explicit

[説明]:

Option Explicitを記述すると「モジュール内の全ての変数について、明示的な宣言をしないと使用できなくなります。」との意味になります。また、この明示により変数のスペルミスを無くし、処理エラーでプログラムが動かなくなる事象を最小限に食い止める事もできます。

 

明示的な変数宣言

(1)VBE画面を開きます。

※VBE画面の開き方はこちらの手順を参考にして下さい。

f:id:m_kbou:20201110161741p:plain

(2)以下の内容を記述します。(※今回の例では変数:名前を使用します。)

Sub サンプル()

  名前 = "茨城太郎さん"

  MsgBox 名前 & " おはようございます。"

End Sub

f:id:m_kbou:20201110161753p:plain

Option Explicitを記述しない場合

(3)サンプルモジュール内でクリックし、カーソルを点滅させてから上部の実行ボタン▶をクリックします。

f:id:m_kbou:20201110161806p:plain

(4)”茨城太郎さん おはようございます。”のMsgBoxが表示されます。(※変数の宣言をしなくても処理が正常に実行されます。)

f:id:m_kbou:20201110161817p:plain

Option Explicitを記述した場合

(5)(2)で記述したモジュールの上部に「Option Explicit」を記述します。 (※これを追記した事で、以降変数を使用する場合は必ず明示的な変数の宣言が必須となります。仮に変数の宣言をしないで処理を実行した場合は、警告メッセージが表示されます。)

f:id:m_kbou:20201110161849p:plain

(6)サンプルモジュール内でクリックし、カーソルを点滅させてから上部の実行ボタン▶をクリックします。(※今回はあえて変数の宣言をせずに処理を実行するとどうなるか?を確認してみます。)

f:id:m_kbou:20201110161914p:plain

(7)”変数が定義されていません。”の警告メッセージが表示されました。(※変数の宣言をせずに処理を実行すると、この様な警告メッセージが表示されます。このメッセージは、上記(6)で「Option Explicit」を追加した事による「変数の宣言がされていません。」のメッセージになります。)

f:id:m_kbou:20201110162155p:plain

(8)サンプルモジュールの中に変数の宣言「Dim 名前 As String」を追加します。(※この変数の宣言をする事で、上記(7)の警告メッセージは表示されなくなります。)

f:id:m_kbou:20201110161946p:plain

(9)サンプルモジュール内でクリックし、カーソルを点滅させてから上部の実行ボタン▶をクリックします。

f:id:m_kbou:20201110162217p:plain

(10)”茨城太郎さん おはようございます。”のMsgBoxが表示されます。(※(8)で変数の宣言をしたため、処理が正常に実行されました。)

f:id:m_kbou:20201110161817p:plain

 

サンプル

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

明示的な変数宣言についての説明は以上です。

 

おわりに

Option Explicitの記述については、VBAを紹介しているサイトにより「記述は必須です。」「記述は不要です。」等まちまちの内容で書かれているケースがあります。しかし、上手く使えば動作しない理由(エラー箇所)を容易に見つける手助けにもなるため、このサイトでは使用する事をお勧めします。