• ベストアンサー

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

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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

pastapasta
質問者

お礼

1050YEN様 お礼が遅くなりました。 ご回答頂きましてありがとうございます。 大変参考になりました。 以前質問した際にもアドバイス頂き感謝しております。

その他の回答 (1)

  • n-akina
  • ベストアンサー率31% (75/238)
回答No.1

こんにちは。  開いているファイルのコレクション・オブジェクト等を調べて、自分が開いたもの以外のファイルが開いていたらパワポを終了せず、ファイルだけ閉じてプログラムが終了すればよいのではないでしょうか。 では。

pastapasta
質問者

お礼

n-akina様 ご回答頂きましてありがとうございます。 確かにおっしゃる通りですね。 難しく考え過ぎていました。

関連するQ&A