このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

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

2023年2月6日

VBAでグローバル変数を定義する方法

タイトルにグローバル変数と書きましたが、厳密にはVBAにはグローバル変数はありません。

一般的にグローバル変数はどの場所からも参照できる変数のことです。

VBAでこれに該当する変数はモジュールレベル変数になります。

今回はこのモジュールレベル変数がどのようなものかを紹介します。

エンジニア転職(PR)
20代まで! ウズカレITは未経験者を募集しています。

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で宣言すると覚えておきましょう。

VBAが難しいと感じたら
プロにお任せして代わりに作ってもらってはいかがでしょう?
VBAの作成依頼はこちらから

《VBA中級者向けの本》
VBA上級者を目指したい人にはパーフェクトExcel VBA一択です。

created by Rinker
技術評論社
¥3,608 (2023/09/30 14:07:44時点 Amazon調べ-詳細)

他の「VBA」の記事はこちらからどうぞ

VBA

Posted by やろまい