• ベストアンサー

EXCELのVBAで作業ファイルを閉じてもメモリの解放をしなくて困っています

いろいろネットで調べてみたのですが、わからなかったので お願いします。 EXCEL2003のVBAで作業ブックを作り、色々計算した 結果を1つのシートにまとめ、結果シートを新たに作ったブックに コピーします。 その後、作業ブックは保存せずに閉じるのですが、作業ブックで 増えたメモリがブックを閉じても減りません。 自分が調べた限りでは、こういう事例はありませんでした。 作業ブックを閉じても、作業ブックのメモリは解放されないもの なんでしょうか。 どんどん、メモリが増えたままになって困っております。 なんせ、初心者なので、いまひとつわかっておりません。 よろしくお願いいたします。

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

  • ベストアンサー
回答No.1

コードがないので、良くわかりませんが、 タスクマネージャーを見ながら一行ずつデバッグすると どこでプロセスが起動して終了しているのかがわかるはずです。 以下、参考になるかわかりませんがHPを・・・。

参考URL:
http://homepage1.nifty.com/rucio/main/technique/teq_15.htm
cometa
質問者

お礼

早速の返答ありがとうございます。 しかしながら、参考のHPがちんぷんかんぷんです。 (すみません。日曜大工的にVBAを独学でやって いますので) HPのどこがわからないかが分からない状態ですので、 とりあえず、このHPを2、3日かけてじっくり がんばって理解します。 わかり次第また連絡致します。 ありがとうございました。

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

#3 の補足です。 >自分が調べた限りでは、こういう事例はありませんでした。 >作業ブックを閉じても、作業ブックのメモリは解放されないもの >なんでしょうか。 >どんどん、メモリが増えたままになって困っております。 メモリが開放されないのではなくて、単に、メモリの量が増えているのではないでしょうか?それは、#3で述べた、メモリ枠の限界まで、使用した量は確実に増えていきます。それは、しかたがありませんし、それを気にしてもどうしようもありません。 要するに、Excelのアプリケーションを終了して残るか、残らないかだけです。それを確認してください。

cometa
質問者

お礼

早速の返答ありがとうございます。 excelのアプリケーションを終了させれば メモリは解放されます。ということは どうしようもないという結論もあるということですね。 すみません、setステートメントも よく理解していない者ですので、 このあたりの解放方法を探ってみます。 コードについてはどのあたりがあやしいという 見当がつかないので、見当がつき次第 また連絡します。 ありがとうございました。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 通常、単独で使っている分にはありません。COMやオートメーションサーバーで用いなければ、そのようなことはありません。単独でExcelを使用する場合、あらかじめ、Excel側がメモリの枠を取ってから、VBAなどが使われますので、本体、Application が終わると、残らないようになっています。つまり、本体自体が終わっていないということになるかもしれません。 個々のプロセスが残るのは、.Net で、別に、COM開放プログラムが必要です。 言葉だけで、回答者に想像させても、限界があります。とにかくコードを見せてください。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

Set (オブジェクト)=Nothing を入れるべきところに入れてないのでは。 http://www.moug.net/tech/exvba/0150027.htm を参考に。

cometa
質問者

お礼

早速の返答ありがとうございます。 setステートメントの意味がいまひとつ 理解できておりません。 すみません。setをもう少し勉強します。 理解できたらまた連絡します。 ありがとうございました。

関連するQ&A