こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

投稿日時 - 2005-11-24 15:35:53

QNo.1798752

困ってます

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

サンプル

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

投稿日時 - 2005-11-24 17:43:47

お礼

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

投稿日時 - 2005-11-25 12:02:10

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

こんにちは。

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

では。

投稿日時 - 2005-11-24 15:47:52

お礼

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

投稿日時 - 2005-11-25 11:59:00

あなたにオススメの質問