タイトル : Re^3: PowerPointのオブジェクト開放ができません 投稿日 : 2009/08/27(Thu) 14:28 投稿者 : camputer
Hongliang様 camputerです。アドバイスどうもありがとうございました! (最初の投稿と今いる場所が違うのでアドレスが違うかもしれません。どうもすみません。) IEnumeratorが非COM オブジェクトかどうかということで 下のようにMsgBoxを入れてみましたところ Dim enumerator As IEnumerator = mySlides.GetEnumerator() MsgBox(Marshal.IsComObject(enumerator)) While enumerator.MoveNext() MsgBox(Marshal.IsComObject(enumerator)) Dim mySlide As Object = enumerator.Current MRComObject(mySlide) End While すべてFalseが帰ってきたので、すべて「非COM オブジェクト」 ということだと思うのですが。。 そこでアドバイスいただいた通りに作ってみたいので、 Dim enumerator As IEnumerator = mySlides.GetEnumerator() While enumerator.MoveNext() Dim mySlide As Object = enumerator.Current Dim obj As Object = TryCast(enumerator, ICustomAdapter) Dim obj2 As Object = obj.GetUnderlyingObject MRComObject(mySlide) MRComObject(obj) 'MRComObject(obj2) End While MRComObject(enumerator) : enumerator = Nothing MRComObject(mySlides) : mySlides = Nothing MRComObject(mySlides) : mySlides = Nothing としましたが、obj2のMRComObjectの仕方が分かりません。。 whileの外に出してしまうと、「宣言されていません」とエラーになり、 whileの中にあるとwhile2週目がループしなくなってしまいます。。 (Whileの行で「基になる RCW から分割された COM オブジェクトを使うことはできません。」となります。) お時間のあるときにアドバイスいただけないでしょうか。。。 お手数をおかけいたしますがどうぞよろしくお願いいたします。 |