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

タイトル 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 の実装だと
正しく処理できない可能性があるので、イベントを使う場合には注意が必要かも。

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

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