タイトル : Re^5: Cells.FindNextのループ中の解放 投稿日 : 2009/09/16(Wed) 17:46 投稿者 : 魔界の仮面弁士
> MRComObjectにつきましては、ずっとVBレスキュー花ちゃんで御提示いただいていた > コードを使わせていただいておりますが、 実のところ、MRComObject は投稿時期によって、複数の実装があったりします。 > (これも魔界の仮面弁士様がご作成くださったコードのようですね^^ > 以下、http://hanatyan.sakura.ne.jp/dotnet/Excel01.htmからの引用です。 確かに、そのコードは私が手を加えた物ではあるのですが、そもそも 『Sub MRComObject』の初出は、花ちゃんさん作の物であったかと思います。 # そしてその元ネタは、恐らく KB317109 の『Sub NAR』であろうと推測。。。 # http://support.microsoft.com/kb/317109/ja > MRComObject(Obj) '←ここでObjにNothingを入れない方がよいのかな?と考えました。 入れても良いですし、入れなくても構いません。 (その Obj が WithEvents 付き変数であるならば、入れない方が良いでしょう) COM オブジェクトの解放と破棄自体は、Marshal.ReleaseComObject の 呼び出しだけで充分です。とはいえ、厳密にはそれだけでは完全なメモリ解放とは なりませんし、また、Nothing 代入すること自体が無意味というわけでもありません。 このあたりは厄介な事情が絡んでくるので、簡単に説明するのは難しいです。 少し難しい話になりますが、興味があれば下記を参照してみてください。 http://hpcgi1.nifty.com/MADIA/vbnet/wwwlng.cgi?print+200908/09080001.txt http://msdn.microsoft.com/ja-jp/library/aa159887%28office.11%29.aspx#odc_ofcomplexcomobjectspias_managingcomobjectswithappdomains http://shinichiaoyagi.blog25.fc2.com/blog-entry-180.html |