[分享]将PPT中的所有Shape导出成图片(VBA中隐藏的Export方法)
大家知道,在PPT 的前台可以在Shape对象(绘图层中的对象,例如自选图形、任意多边形、OLE 对象或图片)上点击右键,然后将之可以另存为图片。如果我们录制宏的话,会得到类似于ActivePresentation.SaveAs FileName:="C:Documents and SettingsAdministrator桌面图片1.emf", FileFormat:=ppSaveAsEMF, EmbedTrueTypeFonts:=msoFalse的代码,与文件“另存为”没有任何差别。在VBA的2003帮助中,也找不到相关的内容,却在早期的2002版的帮助中,可以看到Shape对象有Export方法,可遗憾的是微软莫明其妙的没有对这个方法做任何的说明。我们可以使用Export方法将Shape对象以图形格式导出,下面的示例代码将演示文稿中的所有Shape导出到“D:PPT中导出的图片”中,希望对需要的朋友有所帮助,也希望论坛中的高手对此贴的错漏加以辅正。
Sub SaveShape()
Dim mySlide As Slide
Dim myShape As Shape, i_Temp As Integer
On Error Resume Next
MkDir "D:PPT中导出的图片" ‘创建文件夹
For Each mySlide In ActivePresentation.Slides
For Each myShape In mySlide.Shapes
i_Temp = i_Temp + 1
‘以gif格式导出图片,用户也可以根据需要导成其他格式
‘如果用户对导出的图片大小不满意,可自行添加两个参数ScaleWidth,ScaleHeight
myShape.Export pathName:="D:PPT中导出的图片" & i_Temp & ".gif", Filter:=ppShapeFormatGIF
Next
Next
End Sub 太帅气了,学习了! 动态PPT?先收藏一下 export后图片像素变低 有什么补救方法 Export 函数支持如下格式: bmp , dib, dwg, dxf, emf, emz, gif, htm, jpg, png, svg, svgz, tif, 或者wmf。
简单修改一下原来的错误,并把格式给为jpg的,像素应该提高了,和原来照片一样的。
[*]Sub SaveShape()
[*]Dim mySlide As Slide
[*]Dim myShape As Shape, i_Temp As Integer
[*]On Error Resume Next
[*]MkDir "D:PPT中导出的图片" '创建文件夹
[*]For Each mySlide In ActivePresentation.Slides
[*] For Each myShape In mySlide.Shapes
[*] i_Temp = i_Temp + 1
[*] '以gif格式导出图片,用户也可以根据需要导成其他格式
[*] '如果用户对导出的图片大小不满意,可自行添加两个参数ScaleWidth,ScaleHeight
[*] myShape.Export pathName:="D:PPT中导出的图片" & i_Temp & ".jpg", Filter:=ppShapeFormatGIF
[*] Next
[*]NextEnd Sub
复制代码 不错,虽然是将所有的Shape导出了,学习一下 word 不能用,有办法么
页:
[1]