>それを実行後、手で、追加分のシートを別のブックにコピーした後、削除し、実行前の状態(追加シートのない元のもの)に戻すといったことを繰り返していると
この処理で 何がしたいのか不明です。
実行前の状態に戻したいのならば、ファイルをいったん保存せずに 閉じて 開きなおしたらいいのでは ないのでしょうか?
VBA内でオブジェクトを解放していないのであれば、解放処理を入れてみてはいかがでしょうか?
それでダメならEXCEL-VBAがメモリリークを起こしている可能性はあります。
VBAのつくりを変えて、自身のブックに追加するのではなく、新規のブックに追加するなどの処理にする方が良いかもしれません。
>別のブックにコピー後、削除して、実行前の状態に戻してから再実行している
Excelはガベッジコレクション(内部の使わなくなった空間の廃棄)を行わず、Book内部の空いた空間を空いたままの状態で残してしまいます。
そのためファイルサイズは拡大の一途を辿ります。
対処としては、
(案1)連続して動かさない。
(案2)新しいBookを作成→そのBookの中にシートを作成→新しいBook自体を削除 という手順に変える。
(案3)移し変えるのではなく、別のBookというものに直接書き込むようなプログラムに変える。
コメント(0件)