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

タイトル 補足事項として
投稿日: 2005/03/24(Thu) 18:00
投稿者魔界の仮面弁士
> どうも自分は R2 〜 R5 を変数として考えていたのですけど、
> まったく別物って考えたほうが良いってことなんですよね?

いえいえ。それ自体はただの変数ですよ。(^^;


問題なのは、それらの変数に、Excel の ActiveXコンポーネントを
保持させているという点にあります。


厄介な事に、ActiveX(COM)のオブジェクト と .NET のオブジェクトでは、
メモリの管理方法が全く異なるため、.NET側の変数が使われなくなっても、
COM側のオブジェクトまでが「即座に」解放されるわけではありません。

それゆえ、.NETからCOMを利用する場合は、取得したCOMオブジェクトを
「自分で解放しなければいけない」という自体が発生するわけです。

hhttp://www.microsoft.com/japan/msdn/library/ja/jpdnbnetguide/htm/IntroDotNET_ch02-08.asp?



これは、Excel以外の COMオブジェクトを利用している場合にもいえますので、
.NET から COM を利用する場合は、ReleaseComObject を呼び忘れている
部分が無いか、常に意識しながらコーディングするようにして下さい。

Excel ならば、プロセスが残っている事を簡単に確認できますが、
その他のCOMオブジェクトの場合は、うっかり解放し忘れていても、
その事に、なかなか気づきにくかったりしますからね。

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

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