HOWTO: Automate PowerPoint Using Visual FoxPro

ID: Q230154

The information in this article applies to:


This article demonstrates how to automate Microsoft PowerPoint using Visual FoxPro 6.0.


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 FoxPro automation example:

  1. Start Visual FoxPro 6.0 and choose New... from the File menu.

  2. Select Project as the file type, click New file, and name the project PptTest.

  3. In the Project Manager for your project, click on Programs under the Code entry in the tree, then click the New... button.

  4. Paste the following code into the Program1 window:

     * Start PowerPoint
       PptApp = CreateObject("Powerpoint.Application")
     * Add a presentation
       PptPres = PptApp.Presentations.Add(1)
     * Add a slide	
       PptSlide1 = PptPres.Slides.Add(1,2)
     * Add some text...
       PptSlide1.Shapes(1).TextFrame.TextRange.Text = "My first slide"
       PptSlide1.Shapes(2).TextFrame.TextRange.Text = "Automating Powerpoint is easy" + Chr(13) + "Using FoxPro is fun!"
     * Add another slide, with a chart
       PptSlide2 = PptPres.Slides.Add(2,5)
     * Add some text
       PptSlide2.Shapes(1).TextFrame.TextRange.Text = "Slide 2's topic"
       PptSlide2.Shapes(1).TextFrame.TextRange.Text = "You can create and use charts in your Powerpoint slides!"
     * Add a chart where the old one is...
       With PptSlide2.Shapes(3)
          cTop = .Top
          cWidth = .Width
          cHeight = .Height
          cLeft = .Left
       PptSlide2.Shapes.AddOLEObject(cLeft, cTop, cWidth, cHeight, "MSGraph.Chart")
     * Add another slide, with an Organization chart
       PptSlide3 = PptPres.Slides.Add(3,7)
     * Add some text
       PptSlide3.Shapes(1).TextFrame.TextRange.Text = "The rest is only limited by your Imagination"
     * Add an Org chart where old one is...
       With PptSlide3.Shapes(2)
          cTop = .Top
          cWidth = .Width
          cHeight = .Height
          cLeft = .Left
       PptSlide3.Shapes.AddOLEObject(cLeft, cTop, cWidth, cHeight, "OrgPlusWOPX.4")
     * Setup slide show properties...
       With PptPres.Slides.Range.SlideShowTransition
          .EntryEffect = 513
          .AdvanceOnTime = 1
          .AdvanceTime = 5
     * Prepare and run slide-show!
       With PptPres.SlideShowSettings
          .ShowType = 3
          .LoopUntilStopped = 1
          .RangeType = 1
          .AdvanceMode = 2
     * Sleep so user can watch the show...
       Wait window "Waiting for slide show to finish..." TIMEOUT 16
     * Stop the slide show
     * Clean up
       Release PptSlide3
       Release PptSlide2
       Release PptSlide1
       Release PptPres
       Release PptApp 
  6. Choose File/Save (CTRL+S) and save the program as PptTest.

  7. Run the program (CTRL+E).

    The example creates an example Powerpoint presentation, plays a slide show for 16 seconds, then cleans up. The code is commented carefully to explain what each code segment does.

© Microsoft Corporation 1999, All Rights Reserved.
Contributions by Joe Crump, Microsoft Corporation

Additional query words:

Keywords          : kbAutomation kbVFp kbVFp600 kbPowerPt kbGrpDSO 
Version           : WINDOWS:2000,6.0,97
Platform          : WINDOWS 
Issue type        : kbhowto 

Last Reviewed: May 24, 1999