HOWTO: Automate PowerPoint Using Visual Basic
ID: Q222929
|
The information in this article applies to:
-
Microsoft Visual Basic Professional and Enterprise Editions for Windows, versions 5.0, 6.0
-
Microsoft Office 2000 Developer, version 2000
-
Microsoft PowerPoint 2000
SUMMARY
This article demonstrates how to automate Microsoft PowerPoint using Visual Basic.
MORE INFORMATION
By using automation in PowerPoint, you can programmatically print, display slides, and do most of the things you can do interactively. Follow these steps to build and run a Visual Basic automation example:
- Create a new Standard EXE project. Form1 is created by default.
- Add a CommandButton to the default form.
- From the Project menu, click References, and add Microsoft PowerPoint 8.0 Object Library and Microsoft Office 8.0 Object Library. For Office 2000, this is the 9.0 verison of the Type Libraries.
- Add the following to your form code window:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Command1_Click()
' Start PowerPoint.
Dim ppApp As PowerPoint.Application
Set ppApp = CreateObject("Powerpoint.Application")
' Make it visible.
ppApp.Visible = True
' Add a new presentation.
Dim ppPres As PowerPoint.Presentation
Set ppPres = ppApp.Presentations.Add(msoTrue)
' Add a new slide.
Dim ppSlide1 As PowerPoint.Slide
Set ppSlide1 = ppPres.Slides.Add(1, ppLayoutText)
' Add some text.
ppSlide1.Shapes(1).TextFrame.TextRange.Text = "My first slide"
ppSlide1.Shapes(2).TextFrame.TextRange.Text = "Automating Powerpoint is easy" & vbCr & "Using Visual Basic is fun!"
' Add another slide, with a chart.
Dim ppSlide2 As PowerPoint.Slide
Set ppSlide2 = ppPres.Slides.Add(2, ppLayoutTextAndChart)
' Add some text.
ppSlide2.Shapes(1).TextFrame.TextRange.Text = "Slide 2's topic"
ppSlide2.Shapes(2).TextFrame.TextRange.Text = "You can create and use charts in your Powerpoint slides!"
' Add a chart in the same location as the old one.
Dim cTop As Double
Dim cWidth As Double
Dim cHeight As Double
Dim cLeft As Double
With ppSlide2.Shapes(3)
cTop = .Top
cWidth = .Width
cHeight = .Height
cLeft = .Left
.Delete
End With
ppSlide2.Shapes.AddOLEObject cLeft, cTop, cWidth, cHeight, "MSGraph.Chart"
' Add another slide, with an organization chart.
Dim ppSlide3 As PowerPoint.Slide
Set ppSlide3 = ppPres.Slides.Add(3, ppLayoutOrgchart)
' Add some text.
ppSlide3.Shapes(1).TextFrame.TextRange.Text = "The rest is only limited by your Imagination"
' Add an Org Chart in the same location as the old one.
With ppSlide3.Shapes(2)
cTop = .Top
cWidth = .Width
cHeight = .Height
cLeft = .Left
.Delete
End With
ppSlide3.Shapes.AddOLEObject cLeft, cTop, cWidth, cHeight, "OrgPlusWOPX.4"
' Setup slide show properties.
With ppPres.Slides.Range.SlideShowTransition
.EntryEffect = ppEffectRandom
.AdvanceOnTime = msoTrue
.AdvanceTime = 5 ' 5 seconds per slide
End With
' Prepare and run the slide show.
With ppPres.SlideShowSettings
.ShowType = ppShowTypeKiosk
.LoopUntilStopped = msoTrue
.RangeType = ppShowAll
.AdvanceMode = ppSlideShowUseSlideTimings
.Run
End With
' Sleep so user can watch the show.
Sleep (15000)
' Clean up.
ppApp.Quit
End Sub
- Run the project.
REFERENCES
For more information about Office Automation, please visit the Microsoft Office Development support Web site:
http://support.microsoft.com/support/officedev/
Additional query words:
Keywords : kbAutomation kbVBp kbVBp500 kbVBp600 kbPowerPt kbGrpDSO kbOffice2000 kbpowerpt2000
Version : WINDOWS:2000,5.0,6.0; :2000
Platform : WINDOWS
Issue type : kbhowto
|