tags:

views:

75

answers:

1

How do I extract all the images from a PowerPoint file programatically using COM?

A: 

Well, there are two ways. One of them is for PowerPoint 2007 and 2010 only. But:

  1. It's not COM - you just open the file as a zip and go to the /media folder and then you have access to all the images.
  2. These are the raw images, not the images that PowerPoint renders if you've apply any affects to them (like Brightness/Contrast, Recolor, etc.).

The way in COM is through a depreciated feature called Shape.Export. In order to get access to it's Intellisense, you have to choose "Show Hidden Members" in the VBE (assuming you're using VBA for this). Here's the code for using it:

Sub SaveAllPictures()
    Dim ap As Presentation: Set ap = ActivePresentation
    Dim savePath As String
    savePath = "C:\Users\me\Desktop\files\"
    Dim i As Integer
    Dim sl As Slide
    Dim sh As Shape
    For Each sl In ap.Slides
        For Each sh In sl.Shapes
            If sh.Type = msoPicture Then
                sh.Export PathName:=savePath & sh.Name & CStr(i) & ".png", Filter:=ppShapeFormatPNG
                i = i + 1
            End If
        Next
    Next
End Sub
Otaku