- ベストアンサー
Excel2003 VBA 変数のスコープについて
お世話になります。 Excel VBAで、Application.Run "Book1!Test"によって、他ブックのプロシージャを実行することができますが、その「他ブックのプロシージャ」で使用した変数を、Application.Run "Book1!Test"終了後も、使用できるような変数宣言の仕方(スコープ)はあるのでしょうか。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Staticで宣言すれば、終了後も値が保存されます。最初に呼ばれたかどうかを判断するのに使っています。このプログラムを実行すれば、呼ぶたびにカウントアップします。 ' Sub test() ' Static Count As Integer ' Count = Count + 1 Debug.Print Count End Sub サブルーチンをStaticで宣言すれば、全ての変数がStaticになって、終了後も値が保存されます。 ' Static Sub test() ' Dim Count As Integer ' Count = Count + 1 Debug.Print Count End Sub メインルーチンで使いたいのであれば無理です。関数にして値を返すか、セルに値を入れるしかありません。
お礼
ありがとうございます。 できました。