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

タイトル Re^3: Excel ComObjectの解放
投稿日: 2014/10/29(Wed) 14:28
投稿者魔界の仮面弁士
> xlSheetsの解放はExcelCloseのところで行っているのでは足りないということだと思いますが

掲示板に書かれていない、省略された部分に原因があるのかも知れません。


原因の切り分けのため、第三者がそのまま検証できるよう、
必要な変数宣言もすべて含めた、完全なソースコードを省略せずに
記載していただけないでしょうか。検証に必要最低限の内容で。

特定の Excel 文書ファイルが必要なら、その文書の作成手順もあると助かります。


もしも他者が「実験コード」でも現象を再現できるようであれば、
原因を追跡しやすくなりますし、他の人には再現できないようであれば、
プログラムではなく、動作環境に問題がある可能性が浮上してきます。

また、実験用に作り直したコードでは再現しないということになれば、
今度は既存コードとの違いを調べていくという作業を行えばよい事になりますよね。



> 何を解放していないのかわからないです。

http://hanatyan.sakura.ne.jp/dotnet/Excel01.htm で紹介されている
MRComObject の実装を呼び出しているだとしたら、
「MRComObject(xlSheets)」としている箇所を
「MRComObject(xlSheets, True)」に変更してみて下さい。

それで解放漏れが無くなるようであれば、どこかで xlSheets への
COM 参照が複数生成されてしまっていることになります。
どの行を追加した段階で、参照カウントが増加してしまっているのかを追跡してみてください。

このとき、念のため「Option Strict On」にてコンパイルが通るようにしておきましょう。
暗黙の型変換が原因で、参照カウントが増じてしまうケースもあるようなので。

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

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