我在Microsoft Powerpoint 2013演示文稿中嵌入了很多图片。在Powerpoint 2013中,我可以右键单击图片对象,然后使用“另存为图片”将图像保存到本地磁盘。但这是手动的方式。我想知道是否有通过VBA自动化相同的方法?我能够遍历Shapes集合,然后确定对象的类型。但我无法弄清楚哪些属性或方法与将图片存储到本地磁盘相关?以下是迭代Shapes集合并确定Shape是否为msoPicture类型的代码片段
For currentSlideIndex = 1 To totalSlidesCount
Set currentSlide = ActivePresentation.Slides(currentSlideIndex)
For Each mediaShape In currentSlide.Shapes
mediaCounter = mediaCounter + 1 'for each shape in the slide
If currentSlideIndex = 3 Then
If mediaShape.Type = msoPicture Then
MsgBox ("Shape Type Picture is " + CStr(mediaShape.Type) )
End If
End If
Next mediaShape
mediaCounter = 0 'Reset to 0 for the new slide
Next
答案 0 :(得分:2)
您可以使用形状的.Export方法将当前形状导出到图片。
这通常是隐藏的,因此默认情况下你不会获得intellisense帮助,所以:
进入IDE 按F2打开对象浏览器 右键单击Classes右侧的窗格,您可以在顶部看到“Members of ...”。 选中Show Hidden Members
旁边的复选框现在,当您在幻灯片形状上键入.Export时,您将获得智能感知指导。
另请注意,如果形状为Type 14(占位符),则它可以包含图片,因此您可能需要添加以下内容:
If mediaShape.Type = msoPlaceholder Then
If mediaShape.PlaceholderFormat.ContainedType = msoPicture Then
' it's also a picture
End If
End if
为了增加娱乐价值,您可能还有.Type = msoLinkedPicture,甚至在某些情况下,msoEmbeddedOLEObject恰好是一张图片。