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

解決済みの質問

VB6.0でPowerPoint上のイベントを取得したい

VB6.0からPowerPointのファイルを開き、
PowerPoint上のイベントを取得したいのですが、
方法が分からず困っております。
具体的には、ツールバーのプレビューボタンが
クリックされたことをVBで検知したいと考えています。

現状では下記のように、Applicationの閉じるイベントは
取得できたのですが、そこからどうして良いか分からない状態です。
良きアドバイスをお願い致します。

----------------------------------------------------
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

'■閉じるイベントを取得
Private Sub PPTApp_PresentationClose(ByVal Pres As PowerPoint.Presentation)

MsgBox "閉じる"

End Sub
----------------------------------------------------

投稿日時 - 2005-09-30 17:38:37

QNo.1683355

困ってます

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

>印刷プレビューボタンのことです。

pp2000 SP-3を利用しておりますが、そちらはバージョンが何でしょうか?

っていうのは、私のところには印刷プレビュが無いのです。
なので、このまま流用できるかわかりませんが、印刷ボタンのイベントを、キャンセルできるようなサンプルを載せます。(こちらにはVB6がないので、ExcelVBAで行っております^^;;;)


Microsoft Office X.0 Object Library
も参照設定に追加してください。

Private WithEvents PPTApp  As PowerPoint.Application
Private WithEvents PPTBtn  As Office.CommandBarButton

Private Sub PPTBtn_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)
  CancelDefault = (MsgBox("本当に印刷する?", vbOKCancel) = vbCancel)
End Sub

Private Sub ぼたん_Click()
  Set PPTApp = New PowerPoint.Application
  Dim cmdBar  As Office.CommandBar
  
  PPTApp.Visible = True
  Call PPTApp.Presentations.Open("C:\test.ppt")

  'コマンドバー「標準」
  Set cmdBar = PPTApp.CommandBars("Standard")
  'その中の印刷ボタン
  Set PPTBtn = cmdBar.Controls("印刷(&P)")
End Sub

投稿日時 - 2005-09-30 19:43:20

お礼

1050YEN様、お礼が遅くなってしまいすいません。
こちらの環境はPP2003ですが、
アドバイス頂いた方法で解決することができました。
ご丁寧にありがとうございました。感謝しております。

投稿日時 - 2005-10-01 12:23:25

ANo.2

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

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

回答(2)

ANo.1

すいません。
>プレビューボタン
がどれの事かが解らなかったのですが、、、

スライドショウの開始という意味であれば↓です。
はずしていたらすいません。

Private Sub PPTApp_SlideShowBegin(ByVal Wn As PowerPoint.SlideShowWindow)
  '最大化されてたら邪魔なので、小さくする
  If Wn.IsFullScreen Then
    Wn.Left = 0
    Wn.Top = 0
    Wn.Width = Wn.Width / 2
    Wn.Height = Wn.Height / 2
  End If
End Sub

Private Sub PPTApp_SlideShowEnd(ByVal Pres As PowerPoint.Presentation)
  MsgBox "終わった", vbSystemModal
End Sub

投稿日時 - 2005-09-30 18:24:49

補足

説明不足ですみません。
印刷プレビューボタンのことです。

早速のご回答ありがとうございました。

投稿日時 - 2005-09-30 18:43:52

あなたにオススメの質問