Home » VBE(Visual Basic Editor) » 変数のPrivateとPublicの違いをオブジェクトブラウザーで確認する

変数のPrivateとPublicの違いをオブジェクトブラウザーで確認する

Privateで宣言された変数とPublicで宣言された変数の違いについて解説しました。

モジュールレベル変数とグローバル変数の違いは、もちろんオブジェクトブラウザーにも表れます。

[スポンサードリンク]

オブジェクトブラウザーで確認するプロジェクトの状態

Commonモジュールで変数g_cntだけがPublicで宣言され、

Module1モジュールで変数m_cntがPrivateで宣言され、Subプロシージャsampleが存在しているときの、

オブジェクトブラウザーを見てみましょう。

VBAProjectの選択

オブジェクトブラウザーを表示して、[ライブラリ選択ボックス]で「VBAProject」を選択すると、下図のような表示になります。

[クラスペイン]に、上述のとおり作成した標準モジュールCommonとModule1の他に、デフォルトで存在するオブジェクトモジュールの、Sheet1モジュールとThisWorkbookモジュールが表示されています。

Commonモジュールの状態

[クラスペイン]でCommonモジュールを選択しましょう。

[メンバーペイン]には、もちろん変数g_cntだけが「'Common'のメンバー」として表示されます。

Public変数g_cntの確認

変数g_cntを選択すると、詳細ペインにはCommonモジュールで変数宣言したとおり、

「Public g_cnt As Long」と表示されます。

また「VBAProject.Commonのメンバー」と、このプロジェクト内のCommonモジュールに存在していることも表示されています。

Module1モジュールの状態

つづいて[クラスペイン]でModule1モジュールを選択しましょう。
[メンバーペイン]には、変数m_cntと、Subプロシージャsampleが「'Module1'のメンバー」として表示されています。

Private変数m_cntの確認

変数m_cntを選択すると、詳細ペインにModule1モジュールで変数宣言したとおり、

「Private m_cnt As Long」などと表示されていることを確認できます。

Subプロシージャsampleの確認

[メンバーペイン]でsampleを選択すると、詳細ペインには「Public Sub sample()」とSubプロシージャのsampleの定義が表示されます。

実際のコードは「Sub sample()」でしたけれど、

VBAではプロシージャの定義時にPrivateを省略したときはPublicと見なされるため、オブジェクトブラウザーでは「Public Sub sample()」と表示されています。

<グローバル>の確認

CommonモジュールとModule1モジュールについて確認したら、<グローバル>を確認しましょう。

[クラスペイン]で<グローバル>を選択してみると、

CommonモジュールでPublicキーワードを使って宣言された変数g_cntと、Module1モジュールに作成したSubプロシージャsampleだけが表示されています。

このプロジェクト内でどこからでも使える、Publicで宣言したグローバル変数g_cntと、PublicとみなされるSubプロシージャsampleだけが「'<グローバル>'のメンバー」として表示されています。

Module1モジュールでPrivateキーワードを使って宣言した、モジュールレベル変数m_cntは、ここには表示されていません。

最終更新日時:2018-09-20 06:52

[スポンサードリンク]

Home » VBE(Visual Basic Editor) » 変数のPrivateとPublicの違いをオブジェクトブラウザーで確認する

「VBE(Visual Basic Editor)」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.