VBA グローバル変数
In this Article
このチュートリアルでは、VBAのグローバル変数について説明します。
VBAの変数は、異なるスコープを持つことができます。変数のスコープは、コード内の位置と宣言の仕方によって決まります。変数のスコープは、その可視性と使用可能な場所を示しています。
プロシージャレベル変数
これらの変数は、宣言されたサブプロシージャーまたはファンクション内でのみ使用することができます。プロシージャレベル変数は、Dim キーワードを使用して宣言する必要があります。さらに、その変数を目的のサブプロシージャまたは関数内に配置する必要があります。プロシージャーレベル変数の宣言方法は、以下のコードに示されています。
Sub DeclaringAProcedureLevelVariable()
Dim someNumber As Integer
someNumber = 5
MsgBox someNumber
End Sub
結果は以下のようになります。
この変数はDeclaringAProcedureLevelVariable()というSubプロシージャの中でしか使えません。このSubプロシージャの中で、Dimキーワードを使用しているからです。他のSubプロシージャから呼び出すと、次のようにコンパイルエラーになります。
モジュールレベル変数
モジュールレベルの変数は、同じモジュール内のどのサブプロシージャーやファンクションでも使用することができます。変数宣言は、モジュールの先頭の宣言セクションのOption Explicitステートメントの下に配置し、Dim キーワードを使用する必要があります。
エラーメッセージの代わりに2番目のSubプロシージャを実行すると、ワークブックのセルA1に次のような結果が表示されます。
グローバルレベル変数
グローバル 変数は、モジュール、関数、サブプロシジャ、クラスで利用する ことができます。グローバル変数の宣言は、宣言セクションの Options Explicit ステートメントで、Global というキーワードを使用して行います。Global レベルの変数を宣言する方法を以下に示します。Module1 のサブプロシージャは、両方ともこの変数を使用することができます。
この変数はGlobalレベル変数なので、Module2でも使用することができます。
このコードをModule2から実行すると、次のような結果になります。