tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 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 参照は、切断されたままメモリ上に
# 残っているのですが、それはとりあえず別の話。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。