タイトル : Re^5: VB2008で、単一のExcel.Shapesオブジェクトの取得方法 投稿日 : 2009/09/07(Mon) 20:07 投稿者 : 魔界の仮面弁士
> Excel関連のObjectを含まないのコードでもExcel解放に関係あるのかな??と疑い > 念のためコメントアウトする→しない→する→しないを繰り返してみると、 > Excel.EXEが消える→残る→消える→残るを繰り返しましたので、 > Excel関連Object以外のコードもすべて関係あるのかと思い込んでおりました。 アプリを終了させた後で確認していませんか? 確実な解放処理を確認するときは、 objExcelApplication.Quit() 'Excel.Application オブジェクトを閉じる MRComObject(objExcelApplication) '使用していたオブジェクトを破棄 MsgBox("一時停止。Excel.exe は終了していますか?") などとして、アプリを終了させていない状態で確認してみてください。 正しく ReleaseComObject されていれば、最後の COM オブジェクトが 解放された段階で、EXCEL のプロセスも終了します。 なお、アプリを終了させた場合には、ReleaseComObject していなかったとしても、 すべての参照が未使用となった時点で、AppDomain の終了と共に COM ラッパーが 回収され、EXCEL も終了します。適切な順番で処理されていれば、ですけど。 http://hpcgi1.nifty.com/MADIA/vbnet/wwwlng.cgi?print+200908/09080001.txt # 実際には RelaseComObject したとしても、AppDomain が残っている限りは、 # COM ラッパーが使用する COM 参照は、切断されたままメモリ上に # 残っているのですが、それはとりあえず別の話。 |