• ベストアンサー

Excel2003 VBA 変数のスコープについて

お世話になります。 Excel VBAで、Application.Run "Book1!Test"によって、他ブックのプロシージャを実行することができますが、その「他ブックのプロシージャ」で使用した変数を、Application.Run "Book1!Test"終了後も、使用できるような変数宣言の仕方(スコープ)はあるのでしょうか。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • SI299792
  • ベストアンサー率47% (774/1620)
回答No.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 メインルーチンで使いたいのであれば無理です。関数にして値を返すか、セルに値を入れるしかありません。

mihimarumaru
質問者

お礼

ありがとうございます。 できました。

関連するQ&A