• 締切済み

Excel.exeが残る…

いつもお世話になってます。 現在VBを使用してエクセルへの書き込み? というかエクセルに吐き出しをしているのですが、 シートの削除のところでexeが残ってしまいます。 方法が悪いのだろうと思うのですが、どこがどう悪いのかいまいち分かりません。 VB2005とExcel2000での組み合わせです。 コードは下記のとおりです。 Dim oSheets As Excel.Sheets = oBook.Worksheets Dim myChkSht As Excel.Worksheet For Each myChkSht In oSheets If Not (myChkSht.Name = "Sheet1") Then myChkSht.Delete() End If MRComObject(myChkSht) Next MRComObject(myChkSht)

みんなの回答

回答No.3

「解放」の具体的な内容を教えてもらえないでしょうか? VB6の知識で話しますが…。 Excel2000の場合、Quitメソッドか何かを送らないといけなかった記憶はあります。

すると、全ての回答が全文表示されます。
回答No.2

こんにちは。 COMを使用した後、オブジェクトを開放してください。 この場合、使用したもの全てを開放しなければいけません。 cell,range,sheet,bookなど、オブジェクトとして使用したもの全てです。 (参照カウンタが残って、プロセスが落ちません)

978
質問者

補足

さっそくのありがとうございます。 上の方でも書いたのですが、一部しかソースを載せていませんでした、すいません。 Tryの中で処理をしていてfinallyですべて解放しています。 また、ほかのものが原因だったようで消えるのですが、消えるまでに時間がかかります。 解放処理をしてから画面のボタンを使えるようにしているのですが、 ボタンが使えるようになってからもexeがしばらくのこって、それから消えます… こちらのほうもご教授願えれば幸いです。

すると、全ての回答が全文表示されます。
  • AKARI0418
  • ベストアンサー率67% (112/166)
回答No.1

Dim oSheets As Excel.Sheets = oBook.Worksheetsで使用している、 oBookの開放漏れが原因ではないでしょうか?

978
質問者

補足

すいません、ソースの一部しか乗せてなかったのですが、Tryの中で処理をやっているのでfinallyで使用しているものは全部解放しています。 あと、遅れましたがほかのものが原因だったようです、 消えるようになったのですが、消えるまで時間がかかります。 こちらのほうも原因が分かればご教授願えますか?

すると、全ての回答が全文表示されます。

関連するQ&A