0

この質問の答えを探してみましたが、どこにも行きません。したがって、サブ/関数の外側で変数を宣言すると、そのモジュール内のすべてのサブ/関数にアクセスできることを理解しています。他のモジュールはどうですか?私はそれを宣言しなければなりませんか?または、宣言せずに使用できますか?

たとえば、複数のモジュールにログインするために使用される te​​xtstream オブジェクトがあります。基本的に私がやりたいことは、それらを一度初期化し、モジュール内のすべての関数が同じ objTF オブジェクトを使用してログ ファイルに書き込むことです。これらのオブジェクトは、commandbutton_click イベントで初期化されます。しかし、どこでそれらを宣言しますか?

Dim objFSO As FileSystemObject
Dim objTF As TextStream

すべてのモジュールの先頭に配置する必要がありますか? または、モジュールの 1 つだけで十分ですか? それを行う正しい方法は何ですか?

ありがとう!!

4

1 に答える 1

3

これを試してください(サブまたは関数の外で):

Public objFSO As FileSystemObject
Public objTF As TextStream

プロジェクト内の任意のモジュールからアクセスできるように、それらをグローバルに宣言する必要があります。

編集:

この質問に対する受け入れられた回答には、vba変数のスコープについての適切な説明があります。

于 2013-02-04T15:10:49.267 に答える