その変数が使用されてもよい場合のExcel VBAにおける変数のスコープを決定します。あなたはそれを宣言するときは、変数のスコープを決定します。

プロシージャ・レベル、モジュールレベル、およびパブリックモジュールレベル:3つのスコープのレベルがあります。

ワークシート上のコマンドボタンを配置し、次のコード行を追加します。

Variable Scope Example

1.二つの手順(手順サブ又は機能のいずれかである)モジュールへ。 Visual Basicエディターで、[挿入モジュール]をクリックします。次のコード行を追加します。

Procedure Level Scope in Excel VBA

あなたはシート(2隻の潜水艦を呼び出す)上のコマンドボタンをクリックしてください。2.結果:

Procedure Level Scope Result

Procedure Level Scope Result

説明:それは(SubおよびEnd Subの間)の手順の中で宣言されているため、スコーププロシージャレベルを有するTXT変数。その結果、あなただけSUB1にこの変数を使用することができます。変数TXTはSUB2に使用することはできません。

あなたは、変数は、モジュール内のすべてのプロシージャで使用できるようにしたい場合は3、あなたは変数はモジュールレベルのスコープを持つようにしたいと言っています。

あなたは(モジュールの上部にある)一般宣言セクションで変数を宣言する必要があります。次のように少しのコードを調整します。

Module Level Scope in Excel VBA

あなたはシート上のコマンドボタンをクリックすると、結果4:

Module Level Scope Result

Module Level Scope Result

説明:今SUB2に使用することができますtxtの変数。モジュールレベルは、プライベートモジュールレベルと交換可能に使用されます。一般宣言セクションで薄暗い文で宣言し、デフォルトでは変数はプライベートとしてスコープされているためです。あなたは、パブリックとしてスコープ変数をすることもできます。読む。

5.公共のキーワードを使用することにより、あなたの変数は、ブック内のすべてのモジュール内のすべての手続きに利用できるようになります。これは、パブリックモジュールレベルのスコープと呼ばれています。次のように少しのコードを調整します。

Public Module Level Scope in Excel VBA

説明:今、あなたは新しいモジュールを作成し、このモジュールにSUB3と呼ばれるサブを配置することができます。 SUB2と同じコードを使用してください。あなたのコマンドボタンのコードにSUB3を追加します。ワークシート上のコマンドボタンをクリックすると、あなたは(ダウンロード可能なExcelファイルを参照してください)「変数のみ、この手順で使用することができます」という3つのメッセージボックスを取得します。