- 締切済み
【.NET】PowerPointのSlideオブジェクトの解放について
こんにちは,.NETでOfficeを扱う際の解放について勉強をしております. 質問させていただきます.どうぞよろしくお願いいたします. PPT2007の文字を操作しておりますが, Dim myAPP As PowerPoint.Application myAPP = CreateObject("PowerPoint.Application") Dim myAPPpre As PowerPoint.Presentation ・・・ myAPPpre = myAPPpres.Open(Mypath & FName, WithWindow:=Microsoft.Office.Core.MsoTriState.msoFalse) のあと, Dim myS As PowerPoint.Slide Dim mySlides As PowerPoint.Slides ・・・・・ mySlides = myAPPpre.Slides MRComObject(mySlides) : mySlides = Nothing だとPOWERPNT.EXEがすぐに解放されますが, Dim myS As PowerPoint.Slide Dim mySlides As PowerPoint.Slides ・・・・・ mySlides = myAPPpre.Slides For Each myS In mySlides '追加行 MRComObject(myS) : myS = Nothing '追加行 Next '追加行 MRComObject(mySlides) : mySlides = Nothing と,Slideオブジェクトを入れると解放されなくなってしまいます. 文字列の操作は正常に動作いたしますが. 「Dim myS As PowerPoint.」まで打ったところで一覧で出される候補名を確認しましたところ Slideだけ,Slides等他のオブジェクトとロゴマークが異なるのですが,これは関係あるのでしょうか?? またこの一覧の下の方に「_Slides」なるものも見つけ試してみましたが,うまくいきません. OKWaveでアドバイスいただく前にネット検索につきましてもしっかり行ってみたつもりなのですが, よくわかりませんでした.(もし検索が下手でしたらどうもすみません...) もしお詳しい方がいらっしゃいましたら,是非ともアドバイスいただきたくお願いいたします. どうぞよろしくお願いします.
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- phoenix343
- ベストアンサー率15% (296/1946)
- phoenix343
- ベストアンサー率15% (296/1946)
お礼
phoenix343様 ご回答どうもありがとうございます! 色々と調べております. 以前エラーで「Reintrancyが検出されました~」というのが多発して困った際に, 毎回Nextの前で解放するとうまくいき始めたのがきっかけでこのようにしております. どうもすみません.OSの環境を明記しておりませんでした. 今うまく解放したい動作環境がVista+PPT2007になりますが, 今日別のPC(Win2000+Office2000)で試してみたところ,何故か解放されました. OSの影響かOfficeのバージョンなのか分かりませんでしたが... もし何か些細なことでもご指摘・アドバイスいただけることがございましたら, 是非ともよろしくお願いいたします.