大家知道,在PPT 的前台可以在Shape对象(绘图层中的对象,例如自选图形、任意多边形、OLE 对象或图片)上点击右键,然后将之可以另存为图片。如果我们录制宏的话,会得到类似于ActivePresentation.SaveAs FileName:="C:\Documents and Settings\Administrator\桌面\图片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 |