VBAでグローバル変数を定義する方法(モジュールレベル変数)

タイトルにグローバル変数と書きましたが、厳密にはVBAにはグローバル変数はありません。
一般的にグローバル変数はどの場所からも参照できる変数のことです。
VBAでこれに該当する変数はモジュールレベル変数になります。
今回はこのモジュールレベル変数がどのようなものかを紹介します。
VBAのグローバル変数(モジュールレベル変数)とはどのようなものか
変数宣言の方法
'モジュールの先頭
Public pubAbc As String 'Public:他のモジュールからも参照可能
Private priAbc As String 'Private:他のモジュールからは参照不可
Sub Procedure()
End Sub
先にモジュールレベル変数の宣言方法について説明します。
モジュールレベル変数はモジュール(標準モジュールやシートモジュールなど)の先頭に記載します。
正確にはプロシージャよりも上に記載すればモジュールレベル変数になります。
モジュールレベル変数のスコープ
'モジュールの先頭
Public pubAbc As String 'Public:他のモジュールからも参照可能
Private priAbc As String 'Private:同じモジュール内から参照可能
変数のスコープはPublicで宣言するかPrivateで宣言するかにより変わります。
Publicで宣言すると一般的にいうグローバル変数になります。
どのモジュールのプロシージャからも参照可能な変数となります。
Privateで宣言すると同じモジュール内のすべてのプロシージャから参照可能になります。
ただし他のモジュールからは参照することができません。
VBAでグローバルな変数を作りたい場合はモジュールの先頭に記載してPublicで宣言すると覚えておきましょう。