タイトル : Re^7: PowerPointのオブジェクト開放ができません 投稿日 : 2009/08/28(Fri) 10:50 投稿者 : 魔界の仮面弁士
> > また,以前Excelで同様に↓のようなコードを書いたときはExcel.EXEが残らなかったのですが, > > For Each mySheet In mySheets > > Next > > こちらについてもきちんと今回教えていただいたような書き直しておく方が無難でしょうか? AppDomain がアンロードされれば、ReleaseComObject されなかったオブジェクトも 解放される仕様になっています。 > しかし web をあさってみる限り、Excel の各コレクションオブジェクトについては > みんな For Each で処理して特に問題も起こってないみたいですね。 や。Excel でも駄目ですよ。 (ゆえに私は、For Each ではなく For で呼び出しています) 多少無理やりな方法としては、 Dim o As Object = objWorksheets For Each x In o MRComObject(x) Next MRComObject(o) のように、一度 Object 型に受けてから解放という手もありますが、 あまり良い方法でもないですね。 なお、WithEvents 変数は、ここのサイトで紹介されている MRComObject の実装だと 正しく処理できない可能性があるので、イベントを使う場合には注意が必要かも。 |