使用COM从PowerPoint中提取所有图像

时间:2010-07-05 18:25:23

标签: com powerpoint

如何使用COM以编程方式从PowerPoint文件中提取所有图像?

1 个答案:

答案 0 :(得分:2)

嗯,有两种方法。其中一个仅适用于PowerPoint 2007和2010。但是:

  1. 这不是COM - 你只是打开了 压缩文件并转到/ media 文件夹然后你有权访问 所有的图像。
  2. 这些是原始图像,而不是 PowerPoint呈现的图像 你对他们施加了任何影响 (如亮度/对比度,重新着色, 等)。
  3. COM中的方式是通过名为Shape.Export的折旧功能。为了访问它的Intellisense,您必须在VBE中选择“显示隐藏成员”(假设您正在使用VBA)。以下是使用它的代码:

    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