- ベストアンサー
VB6.0 PowerPointの開閉
VB6.0からPowerPointファイルの開閉を行っています。 問題なく動作するのですが、一点問題があります。 OPENの前に、別のPowerPointファイルが開いていた場合に、 QUITを実行すると、元々開いていたファイルも一緒に終了してしまうことです。 別のプロセスでPowerPointのアプリケーションを実行すれば、 解決できるのではないかと考えているのですが、 具体的にどのようにすればよいか分からず困っております。 大変恐縮ですが、アドバイスを頂ければ助かります。 環境:VB6.0(SP5) PowerPoint2002 ------------------------------------------------------------- Option Explicit Private WithEvents PPTApp As PowerPoint.Application '■パワポを開く Private Sub Command1_Click() Set PPTApp = New PowerPoint.Application PPTApp.Visible = True PPTApp.Presentations.Open (App.Path & "\test.ppt") End Sub '■パワポを閉じる Private Sub Command2_Click() PPTApp.Quit Set PPTApp = Nothing End Sub
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
サンプル Private WithEvents PPTApp As PowerPoint.Application Private PPTPre As PowerPoint.Presentation Sub Command1_Click() Set PPTApp = New PowerPoint.Application PPTApp.Visible = True Set PPTPre = PPTApp.Presentations.Open("C:\test.ppt") End Sub Private Sub Command2_Click() Dim objPTPre As Presentation For Each objPTPre In PPTApp.Presentations If objPTPre Is PPTPre Then objPTPre.Close Exit For End If Next If PPTApp.Presentations.Count = 0 Then PPTApp.Quit Set PPTApp = Nothing End If End Sub Private Sub PPTApp_PresentationClose(ByVal Pres As PowerPoint.Presentation) If Pres Is PPTPre Then Set PPTPre = Nothing End If End Sub
その他の回答 (1)
- n-akina
- ベストアンサー率31% (75/238)
こんにちは。 開いているファイルのコレクション・オブジェクト等を調べて、自分が開いたもの以外のファイルが開いていたらパワポを終了せず、ファイルだけ閉じてプログラムが終了すればよいのではないでしょうか。 では。
お礼
n-akina様 ご回答頂きましてありがとうございます。 確かにおっしゃる通りですね。 難しく考え過ぎていました。
お礼
1050YEN様 お礼が遅くなりました。 ご回答頂きましてありがとうございます。 大変参考になりました。 以前質問した際にもアドバイス頂き感謝しております。