Microsoft Office 2000/Visual Basic Programmer's Guide   

Working with the Slides Collection

You primarily use the Slides collection to add new slides to a presentation or to access a specific slide within a presentation. You use the Slides collection's Add method to add a new slide to a collection. You use arguments of the Add method to specify the location of the slide in the Slides collection and the slide's layout. The following example shows how you would add a new blank slide to the end of the current Slides collection:

Dim sldNewSlide            As PowerPoint.Slide
Dim lngLastSlideAdded      As Long

With ActivePresentation
   Set sldNewSlide = .Slides.Add(.Slides.Count + 1, ppLayoutBlank)
   With sldNewSlide
      ' Add code to set properties of the slide here.
      lngLastSlideAdded = .SlideID
   End With
End With

You can add existing slides, or data that can be converted to slides, to a presentation by using the Slides collection's InsertFromFile method. For example, you could create a new presentation that used the opening and closing slides from a company presentation template and then used a Word outline to create the slides that make up the body of the presentation:

Dim ppApp      As New PowerPoint.Application
Dim prsPres    As PowerPoint.Presentation

With ppApp
   Set prsPres = .Presentations.Add
   With prsPres
      .ApplyTemplate "c:\corp\corpPresentations.pot"
      .Slides.InsertFromFile "c:\PPTOutline.doc", 1
   End With
End With

To locate a slide within the collection, you use the Slides collection's FindBySlideID method. Each slide in a PowerPoint presentation has a SlideID property that is a Long Integer value that uniquely identifies the slide regardless of its location in the Slides collection. When you add to or delete slides from a collection, a slide's index value may change, but its SlideID property will always be the same. The first code sample in this section illustrates how to save the SlideID property to a variable so that it may be used again to locate the slide. The following sample shows how to locate a slide by using the Long Integer value representing the SlideID property:

Function FindSlide(lngID As Long) As PowerPoint.Slide
   ' This procedure returns the slide whose SlideID property value 
   ' matches lngID. If no match is found, the return value of the 
   ' procedure is = Nothing.
   On Error Resume Next
   Set FindSlide = ActivePresentation.Slides.FindBySlideID(lngID)
End Function

The FindSlide procedure is available in the modPPTCode module in PowerPointTools.ppt file in the ODETools\V9\Samples\OPG\Samples\CH05 subfolder on the Office 2000 Developer CD-ROM.