|
This example starts a PowerPoint show from a VB
application and monitors the status of the show by trapping the events
fired by the PowerPoint application. To set the VB application, open
Visual Basic, Select a Standard exe. Place a list box and a command box on
the form. Set a reference to the PowerPoint object library. Copy/paste the
code given below into the code module of the form.
Download VB Project (requires Visual Basic):
' --------------------------------------------------------------------------------
' Copyright ©1999-2009 Shyam Pillai. All Rights Reserved.
' --------------------------------------------------------------------------------
' You are free to use this code within your own applications, add-ins,
' documents etc but you are expressly forbidden from selling or
' otherwise distributing this source code without prior consent.
' This includes both posting free demo projects made from this
' code as well as reproducing the code in text or html format.
'
--------------------------------------------------------------------------------
Option Explicit
Option Explicit
Dim WithEvents oPPTAppEvents As PowerPoint.Application
Dim oPPTApp As PowerPoint.Application
Dim oPPTPres As PowerPoint.Presentation
Dim PresPath As String
Private Sub Command1_Click()
Call AutomatePowerPoint
End Sub
Sub AutomatePowerPoint()
On Error Resume Next
PresPath = "F:\Test\Test.ppt"
Set oPPTApp = CreateObject("PowerPoint.Application")
If Not oPPTApp Is Nothing Then
Set oPPTAppEvents = New PowerPoint.Application
List1.AddItem "All slide show events are being monitored..."
With oPPTApp
Set oPPTPres = .Presentations.Open(PresPath, , , False)
If Not oPPTPres Is Nothing Then
oPPTPres.SlideShowSettings.Run
Else
MsgBox "The code could not open the specified file." & _
"Check if the file is present at the location.", _
vbCritical + vbOKOnly, "PowerPoint Automation Example"
End If
End With
Else
MsgBox "The code failed to instantiate PowerPoint session.", _
vbCritical + vbOKOnly, "PowerPoint Automation Example"
End If
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
On Error Resume Next
Set oPPTPres = Nothing
oPPTApp.Quit
Set oPPTApp = Nothing
End Sub
Private Sub oPPTAppEvents_SlideShowBegin( _
ByVal Wn As PowerPoint.SlideShowWindow)
List1.AddItem "Slide show has begun..."
End Sub
Private Sub oPPTAppEvents_SlideShowEnd( _
ByVal Pres As PowerPoint.Presentation)
List1.AddItem "Slide show has terminated"
End Sub
Private Sub oPPTAppEvents_SlideShowNextBuild( _
ByVal Wn As PowerPoint.SlideShowWindow)
List1.AddItem vbTab & "Slide show next build..."
End Sub
Private Sub oPPTAppEvents_SlideShowNextSlide( _
ByVal Wn As PowerPoint.SlideShowWindow)
List1.AddItem "Next slide event..."
List1.AddItem vbTab & "Current slide: " & Wn.View.Slide.SlideIndex
End Sub
|