VBAコード解説

【エクセルVBA初心者講座】変数の利用方法|モジュールレベル変数とパブリック変数とは

変数の有効範囲と有効期間

今回はVBAで用いる変数について説明します。

VBA初心者の頃は、どんな時に変数を定義するべきなのか判断が難しいですが、VBAで複雑な処理を行うためには変数の活用が必要になります。

変数は宣言する場所や方法によって、有効範囲や有効期間が異なるのが特徴です。

その辺りもふまえて「変数の基礎」を学んで、VBAの構文を書いていきましょう。

変数とは

初見だと理解しにくいですが、変数は文字列や数値などの変化する値を格納する箱のイメージです。

変数を使用する際にはDimステートメントを使って、宣言する必要があります。

変数を宣言する際には、以下のようにデータ型を指定します。

Dim 変数名 As データ型

有効範囲と有効期間

VBAは変数を宣言する場所によって有効範囲有効期間が異なるので、それぞれ説明してきたいと思います。

  • 有効範囲
    変数を使用できる範囲
  • 有効期間
    変数に代入した値が保持される期間

プロシージャレベル変数

プロシージャの中で宣言した変数をプロシージャレベル変数と呼び、その宣言をしたプロシージャの中でしか使用できません。

また、プロシージャの終了とともに格納された値は破棄されます。

プロシージャレベル変数について

※プロシージャについての説明は別の記事をぜひ参考にしてみてください。

関連記事
Functionプロシージャ
【エクセルVBA初心者講座】Functionプロシージャの主な使い方について

続きを見る

以下ではtest1の変数Aは使用できますが、test2の変数Aは使用できない(エラーになる)ので注意が必要です。

Sub test1()
    Dim A as long
    A = 10
    Call test2
End Sub

Sub test2()
    Range("B1") = A * 2 'test2の変数Aはエラーになる
End Sub

モジュールレベル変数

宣言セクションで宣言した変数をモジュールレベル変数と呼び、モジュール内の全てのプロシージャで使用することができます。

宣言セクションは、各モジュールの一番上の部分のことを指しています。

宣言セクションの場所について
宣言セクションの場所

また、プロシージャが終了しても値は保持され、ブックが閉じられると値が破棄されます。

モジュールレベル変数について

以下では、宣言セクションで変数Aを宣言しているので、test1とtest2のどちらでも変数Aを使用することが可能です。

Dim A as long

Sub test1()
    A = 10
    Call test2
End Sub

Sub test2()
    Range("B1") = A * 2
End Sub

パブリック変数

宣言セクションでPublicステートメントを使って宣言した変数をパブリック変数と呼び、全てのモジュールで使用することができます。

変数を宣言する際には、以下のようにデータ型を指定します。

Public 変数名 As データ型

また、プロシージャが終了しても値は保持され、ブックが閉じられると値が破棄されます。

パブリック変数の説明図

以下では、パブリック変数Aを宣言しているので、test1とtest2に加えて異なるモジュールのtest3でも変数Aを使用することが可能です。

Public A as long

Sub test1()
    A = 10
    Call test2
End Sub

Sub test2()
    Range("B1") = A * 2
End Sub
'別のモジュール
Sub test3()
    Range("C1") = A * 3
End Sub

変数のおさらい

観察する人

VBAの変数は、宣言する場所や宣言の方法によって有効範囲や有効期間が異なることを説明しました。

目的にあった方法を選択し、変数を利用してVBAを使いこなしていきましょう!

  • プロシージャレベル変数
    宣言をしたプロシージャの中でのみ使用可能。
    プロシージャの終了とともに格納された値は破棄される。
  • モジュールレベル変数
    モジュール内の全てのプロシージャで使用可能。
    プロシージャが終了しても値は保持され、ブックが閉じられると値が破棄される。
  • パブリック変数
    全てのモジュールで使用可能。
    プロシージャが終了しても値は保持され、ブックが閉じられると値が破棄される。
関連記事
本の階段を登る男性
【エクセル マクロ/VBA】初心者が独学勉強するための本|おすすめ2冊を紹介

続きを見る

-VBAコード解説