プログラムを勉強し始めると「変数」を知ります。
今までに感じた事のない概念で、最初は戸惑と考えます。
基本的には Dim と Public だけ理解すれば問題ありません。
【VBA入門】変数の適用範囲(スコープ)Dim/Public
今回は Dimと Privateの違いを説明します。
基本的には適用範囲(スコープ)は同一で、違いはありません。
DimとPrivateのサンプルコード
モジュール内にPrivate i As Long のように宣言する。
'■PrivateもDimも本モジュール内で使用可能な形で違いはない。 Private i As Long Dim k As Long Public Sub test_Dim_Private() MsgBox i '初期値の0を表示 MsgBox k '初期値の0を表示 End Sub
Privateはプライベートモジュールレベル変数である
Dimはプロシージャレベル変数もしくはプライベートモジュールレベル変数ですが、
Privateはプライベートモジュールレベル変数のみです。
プロシージャ内にPrivateを宣言するとコンパイルエラーが発生します
Public Sub test_Dim_Private() 'Private i As Long 'コンパイルエラー SubまたはFunctionの属性が適切ではありません 'Dim k As Long '本プロシージャ内でのみ使用可能。 MsgBox i 'コンパイルエラー MsgBox k '初期値の0を表示 End Sub
まとめ
- 変数の場合、 Dim またはPrivateでもスコープの範囲は変わりません。
コードの可読性を上げるために Privateステートメントを使用します。 - 定数の場合、 Dim は使用できません。Privateでのみ宣言が可能です。
関連記事
【VBA基本】変数のデータ型一覧
【VBA入門】変数の適用範囲(スコープ)Dim/Public
【VBA入門】Staticステートメント/静的変数
コメント