【发布时间】:2017-08-19 03:11:34
【问题描述】:
我有一个幻灯片演示文稿,其中每张幻灯片上的照片都是一个大文件 (.EMF)。我想将它们全部更改为 .PNG 以使最终文件大小更小。
到目前为止,我有这个:
Sub ConvertShapeToPNG()
Dim osh As Shape
Set osh = ActiveWindow.Selection.ShapeRange(1)
osh.Copy
ActiveWindow.Selection.SlideRange.Shapes.PasteSpecial ppPastePNG
osh.Delete
End Sub
这将拍摄一张在幻灯片上选择的图片并将其替换为 PNG。 我在整个演示文稿中都无法完成这项工作,因为它希望我先选择图片。
这是我的完整演示版代码:
Sub ConvertAllShapesToPNG()
Dim osld As Slide
Dim osh As Shape
For Each osld In ActivePresentation.Slides
For Each osh In osld.Shapes
Set osh = ActiveWindow.Selection.ShapeRange(1)
osh.Copy
ActiveWindow.Selection.SlideRange.Shapes.PasteSpecial ppPastePNG
osh.Delete
Next
Next osld
End Sub
谁能帮助我在整个演示文稿中正确运行此代码? 谢谢!
编辑:如果将照片复制到与原始照片相同的位置而不是复制到幻灯片的中心,这也是理想的,但我自己还没有尝试过。
【问题讨论】:
标签: vba powerpoint image-conversion