
別に質問をしてクローズしないままもう一つの質問です。
ごめんなさい。
Excel VBAからマクロ付きBoookを以下のようにして開く閉じるを繰り返すと、Closeしても、プロジェクトウインドウに開いたBookが残ったままになり、同じBookのOpen、Closeを繰り返すと同名のVBAProjectがどんどん貯まっていきます。
VBA
1Workbooks.Open "Book1.xlsm" 2Workbooks.Close "Book1.xlsm"
タスクマネージャーでメモリを監視すると、メモリは少しずつ上がっていきます。
※タスクマネージャー上では、Book1.xlsmはOpenで表示され、Close時点で消えます。
ロジックをこのように変えると、多少増えにくくなりますが、あまり変わりません。
VBA
1Dim aBook As Workbook 2Set aBook = Workbooks.Open "Book1.xlsm" 3aBook .Close 4Set aBook = NOthing
これは、ほっといても、.NetFrameWOrkのガベージコレクションがそのうち解放しれくれるのでしょうか?
ちなみに、Book1.xlsmというマクロ付きBookではなく、通常のエクセルファイル(Book1.xlsx)であればほとんど貯まりません。(ブレイクポイントで止めたりすると似たような現象にはなります。)
Excel VBAで他ブックを大量にOpen、Closeする場合、メモリが残らないいい方法はないものでしょうか?

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/12/17 02:11