VBA グローバル変数

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

masahiro yoshida

Last updated on 4月 2, 2022

このチュートリアルでは、VBAのグローバル変数について説明します。

VBAの変数は、異なるスコープを持つことができます。変数のスコープは、コード内の位置と宣言の仕方によって決まります。変数のスコープは、その可視性と使用可能な場所を示しています。

プロシージャレベル変数

これらの変数は、宣言されたサブプロシージャーまたはファンクション内でのみ使用することができます。プロシージャレベル変数は、Dim キーワードを使用して宣言する必要があります。さらに、その変数を目的のサブプロシージャまたは関数内に配置する必要があります。プロシージャーレベル変数の宣言方法は、以下のコードに示されています。

Sub DeclaringAProcedureLevelVariable()

Dim someNumber As Integer
someNumber = 5
MsgBox someNumber

End Sub

結果は以下のようになります。

Procure Level Variable in VBA プロシージャレベル 変数

この変数はDeclaringAProcedureLevelVariable()というSubプロシージャの中でしか使えません。このSubプロシージャの中で、Dimキーワードを使用しているからです。他のSubプロシージャから呼び出すと、次のようにコンパイルエラーになります。

Declaring a Variable at Procedure level and then Getting an Error コンパイルエラー

モジュールレベル変数

モジュールレベルの変数は、同じモジュール内のどのサブプロシージャーやファンクションでも使用することができます。変数宣言は、モジュールの先頭の宣言セクションのOption Explicitステートメントの下に配置し、Dim キーワードを使用する必要があります。

Declaring a Module level variable モジュールレベル 変数

エラーメッセージの代わりに2番目のSubプロシージャを実行すると、ワークブックのセルA1に次のような結果が表示されます。

Using a Module Level Variable in VBA モジュールレベル 変数

グローバルレベル変数

グローバル 変数は、モジュール、関数、サブプロシジャ、クラス利用する ことができます。グローバル変数の宣言は、宣言セクションの Options Explicit ステートメントで、Global というキーワードを使用して行います。Global レベルの変数を宣言する方法を以下に示します。Module1 のサブプロシージャは、両方ともこの変数を使用することができます。

Declaring a Global Level Variable グローバルレベル変数

この変数はGlobalレベル変数なので、Module2でも使用することができます。

Using a Global Variable in Another Module グローバルレベル変数

このコードをModule2から実行すると、次のような結果になります。

Using a Global Variable In Another Module グローバルレベル変数

vba-free-addin

VBA Code Examples Add-in

Easily access all of the code examples found on our site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(No installation required!)

Free Download

Return to VBA Code Examples