オーロラさんの勉強帳

33歳、未経験からIT業界へ。SESのロースキル客先常駐勤務。データベース、Excel、Excel VBA、ネットワーク、LinuxなどIT関連のことを主に書いていきます。

VBA 再入門9 変数 part4(変数のと適用範囲スコープ)

 

変数の適用範囲(スコープ)

変数は宣言を記述した場所や記述方法によってに、使用できる範囲が異なります。宣言した変数が使用できる範囲のことを『適用範囲』または『スコープ』と呼びます。

 

例えば、以下のようにプロシージャ内で宣言した変数は別のプロシージャで使うことはできません。

f:id:auroralights:20201122212246p:plain

 

プロシージャレベル変数(ローカル変数)

宣言したプロシージャ内でのみ使うことができる変数です。

同じプロシージャ内で変数名は重複できません。

一番よく使われます。

f:id:auroralights:20201122212816p:plain



モジュールレベル変数

宣言したモジュール内でのいみ使うことができる変数です。

モジュールレベル変数は、プロシージャ内ではなくモジュールの宣言セクションに記述します。DimもしくはPrivateで宣言します。

宣言セクションはモジュールの先頭から最初のプロシージャまでのエリアです。以下の画像で言うと、赤枠部分が宣言モジュールになります。

 

f:id:auroralights:20201122213252p:plain

 

パブリック変数(グローバル変数)

パブリック変数は、すべてのモジュールのすべてのプロシージャで使用できる変数です。宣言セクションにPublicで宣言します。

 

f:id:auroralights:20201122214503p:plain

 

変数の適用範囲のまとめ

  • プロシージャ内で宣言した変数は、そのプロシージャ内でのみ利用できる(プロシージャレベル変数・ローカル変数)
  • 宣言セクションにDimもしくはPrivateで宣言した変数は、そのモジュール内で利用できる(モジュールレベル変数)
  • 宣言セクションにPublicで宣言した変数は、すべてのモジュール、すべてのプロシージャで利用できる(パブリック変数)