|
OfficeTips Home || VBA Section || General Section || Download Section || Privacy Policy |
Start a slide show and monitor it from an external application using events |
|
|
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):
' -------------------------------------------------------------------------------- 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
|
|
Copyright 1999-2014 (c) Shyam Pillai. All rights reserved.