エクセルVBAの変数のスコープ
その変数が使用されてもよい場合のExcel VBAにおける変数のスコープを決定します。あなたはそれを宣言するときは、変数のスコープを決定します。
プロシージャ・レベル、モジュールレベル、およびパブリックモジュールレベル:3つのスコープのレベルがあります。
ワークシート上のコマンドボタンを配置し、次のコード行を追加します。
1.二つの手順(手順サブ又は機能のいずれかである)モジュールへ。 Visual Basicエディターで、[挿入モジュール]をクリックします。次のコード行を追加します。
あなたはシート(2隻の潜水艦を呼び出す)上のコマンドボタンをクリックしてください。2.結果:
説明:それは(SubおよびEnd Subの間)の手順の中で宣言されているため、スコーププロシージャレベルを有するTXT変数。その結果、あなただけSUB1にこの変数を使用することができます。変数TXTはSUB2に使用することはできません。
あなたは、変数は、モジュール内のすべてのプロシージャで使用できるようにしたい場合は3、あなたは変数はモジュールレベルのスコープを持つようにしたいと言っています。
あなたは(モジュールの上部にある)一般宣言セクションで変数を宣言する必要があります。次のように少しのコードを調整します。
あなたはシート上のコマンドボタンをクリックすると、結果4:
説明:今SUB2に使用することができますtxtの変数。モジュールレベルは、プライベートモジュールレベルと交換可能に使用されます。一般宣言セクションで薄暗い文で宣言し、デフォルトでは変数はプライベートとしてスコープされているためです。あなたは、パブリックとしてスコープ変数をすることもできます。読む。
5.公共のキーワードを使用することにより、あなたの変数は、ブック内のすべてのモジュール内のすべての手続きに利用できるようになります。これは、パブリックモジュールレベルのスコープと呼ばれています。次のように少しのコードを調整します。
説明:今、あなたは新しいモジュールを作成し、このモジュールにSUB3と呼ばれるサブを配置することができます。 SUB2と同じコードを使用してください。あなたのコマンドボタンのコードにSUB3を追加します。ワークシート上のコマンドボタンをクリックすると、あなたは(ダウンロード可能なExcelファイルを参照してください)「変数のみ、この手順で使用することができます」という3つのメッセージボックスを取得します。