プロが教える店舗&オフィスのセキュリティ対策術

いろいろネットで調べてみたのですが、わからなかったので
お願いします。

EXCEL2003のVBAで作業ブックを作り、色々計算した
結果を1つのシートにまとめ、結果シートを新たに作ったブックに
コピーします。
その後、作業ブックは保存せずに閉じるのですが、作業ブックで
増えたメモリがブックを閉じても減りません。

自分が調べた限りでは、こういう事例はありませんでした。
作業ブックを閉じても、作業ブックのメモリは解放されないもの
なんでしょうか。
どんどん、メモリが増えたままになって困っております。
なんせ、初心者なので、いまひとつわかっておりません。

よろしくお願いいたします。

A 回答 (4件)

コードがないので、良くわかりませんが、


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

参考URL:http://homepage1.nifty.com/rucio/main/technique/ …
    • good
    • 1
この回答へのお礼

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

わかり次第また連絡致します。
ありがとうございました。

お礼日時:2007/02/26 23:35

#3 の補足です。



>自分が調べた限りでは、こういう事例はありませんでした。
>作業ブックを閉じても、作業ブックのメモリは解放されないもの
>なんでしょうか。
>どんどん、メモリが増えたままになって困っております。

メモリが開放されないのではなくて、単に、メモリの量が増えているのではないでしょうか?それは、#3で述べた、メモリ枠の限界まで、使用した量は確実に増えていきます。それは、しかたがありませんし、それを気にしてもどうしようもありません。

要するに、Excelのアプリケーションを終了して残るか、残らないかだけです。それを確認してください。
    • good
    • 0
この回答へのお礼

早速の返答ありがとうございます。

excelのアプリケーションを終了させれば
メモリは解放されます。ということは
どうしようもないという結論もあるということですね。

すみません、setステートメントも
よく理解していない者ですので、
このあたりの解放方法を探ってみます。

コードについてはどのあたりがあやしいという
見当がつかないので、見当がつき次第
また連絡します。

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

お礼日時:2007/02/27 00:00

こんばんは。



通常、単独で使っている分にはありません。COMやオートメーションサーバーで用いなければ、そのようなことはありません。単独でExcelを使用する場合、あらかじめ、Excel側がメモリの枠を取ってから、VBAなどが使われますので、本体、Application が終わると、残らないようになっています。つまり、本体自体が終わっていないということになるかもしれません。

個々のプロセスが残るのは、.Net で、別に、COM開放プログラムが必要です。

言葉だけで、回答者に想像させても、限界があります。とにかくコードを見せてください。
    • good
    • 0

Set (オブジェクト)=Nothing を入れるべきところに入れてないのでは。


http://www.moug.net/tech/exvba/0150027.htm
を参考に。
    • good
    • 0
この回答へのお礼

早速の返答ありがとうございます。
setステートメントの意味がいまひとつ
理解できておりません。

すみません。setをもう少し勉強します。
理解できたらまた連絡します。

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

お礼日時:2007/02/26 23:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A