0

Excel VBA でグローバル変数を使用する方法についていくつか質問があります。

したがって、私のアプリケーションは、サードパーティが提供する API オブジェクトを使用しています。現在、すべての関数で、このオブジェクトを初期化して使用します。

function()
   Dim api as someApi
   api.dosth

end function

毎回初期化するのではなく、グローバル変数にすることはできますか?最初に宣言してworkbook_open関数で初期化するだけですか?複数の機能が同時に実行されていて、この共有 API オブジェクトを使用しようとした場合、問題になりますか? また、グローバル変数に関する一般的な質問: すべてのモジュールが変数を共有していますか? それとも、各モジュールは、独自のコードで宣言されたグローバル変数しか見ることができませんか? たとえば、同じワークブックにモジュール a とモジュール b があり、api オブジェクトがモジュール a で宣言され、workbook_open イベントで初期化されている場合、モジュール b の関数はそれを使用できますか?

本当にありがとう!!

4

1 に答える 1

0

APIの使用法に応じて、一度初期化してどこでも使用できます。

グローバル/パブリック/プライベート変数を読むことをお勧めします。

基本的に、関数の外部で変数をプライベートとして宣言することは、変数がそのモジュール内でのみアクセスできることを意味します。パブリックとして宣言すると、そのワークブックを使用してすべてのモジュールからアクセスできることを意味します。グローバルとして宣言するということは、Excelのそのインスタンス内のすべてのブックからアクセスできることを意味します。

1つのワークブックでどこからでもAPIにアクセスしたい場合は、パブリック変数を作成し、ワークブックが開いたときに初期化して、ワークブックが閉じたときに変数を適切に閉じる/強制終了することをお勧めします。

于 2013-02-03T20:18:10.673 に答える