Excel VBAでの変数の適用範囲について記載します。
変数は、宣言した場所によって利用できる適用範囲が決まっています。
① プロシージャ内だけで使用できる変数
プロシージャ内で作成された変数は他のプロシージャでは使用ができません。
サンプルで確認しましょう。

sample1プロシージャでmessage変数が使用できています。

sample2プロシージャを実行するとエラーになります。

sample1プロシージャ内で宣言したmessage変数をsample2プロシージャで使用しているのでエラーになります。
② モジュール内の全てのプロシージャ内で使用できる変数
モジュールの宣言セクションでPrivate宣言された変数はモジュール内の全てのプロシージャで使用できます。
サンプルで確認しましょう。

sample1プロシージャ、sample2プロシージャでmessage変数が使用できています。

③ 全てのモジュール内で使用できる変数
モジュールの宣言セクションでPublic宣言された変数は全てのモジュール内で使用できます。
サンプルで確認しましょう。

sample1プロシージャ、sample2プロシージャ、sample3プロシージャで変数が使用できています。

変数の適用範囲と宣言する場所をまとめた表になります。
| 変数宣言 | 宣言する場所 | 適用範囲 |
|---|---|---|
| Dim 変数名 As 変数の型 | プロシージャ内 | プロシージャ内 |
| Private 変数名 As 変数の型 | 宣言セクション | モジュール内の全てのプロシージャ |
| Public 変数名 As 変数の型 | 宣言セクション | 全てのモジュール内 |
今回ご紹介した内容はExcel VBA Standard試験対策の範囲となります。



