找回密码
 立即注册
搜索

[分享]将PPT中的所有Shape导出成图片(VBA中隐藏的Export方法)

6
回复
876
查看
[复制链接]

11

主题

212

帖子

47

幻币

一流武者

Rank: 3Rank: 3

积分
292
QQ
2016-4-12 12:34:04 显示全部楼层 |阅读模式
大家知道,在PPT 的前台可以在Shape对象(绘图层中的对象,例如自选图形、任意多边形、OLE 对象或图片)上点击右键,然后将之可以另存为图片。如果我们录制宏的话,会得到类似于ActivePresentation.SaveAs FileName:="C:Documents and SettingsAdministrator桌面图片1.emf", FileFormat:=ppSaveAsEMF, EmbedTrueTypeFonts:=msoFalse的代码,与文件“另存为”没有任何差别。在VBA2003帮助中,也找不到相关的内容,却在早期的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格式导出图片,用户也可以根据需要导成其他格式
  如果用户对导出的图片大小不满意,可自行添加两个参数ScaleWidthScaleHeight
myShape.Export pathName:="D:PPT中导出的图片" & i_Temp & ".gif", Filter:=ppShapeFormatGIF
Next
Next
End Sub
PPT学习论坛
回复

使用道具 举报

12

主题

221

帖子

36

幻币

一流武者

Rank: 3Rank: 3

积分
262
QQ
2016-4-12 14:00:39 显示全部楼层
太帅气了,学习了!
PPT学习论坛
回复 支持 反对

使用道具 举报

16

主题

224

帖子

38

幻币

一流武者

Rank: 3Rank: 3

积分
267
QQ
2016-4-12 14:02:18 显示全部楼层
动态PPT?先收藏一下
PPT学习论坛
回复 支持 反对

使用道具 举报

15

主题

235

帖子

43

幻币

一流武者

Rank: 3Rank: 3

积分
298
QQ
2016-4-12 14:59:52 显示全部楼层
export后图片像素变低 有什么补救方法
PPT学习论坛
回复 支持 反对

使用道具 举报

13

主题

215

帖子

46

幻币

一流武者

Rank: 3Rank: 3

积分
289
QQ
2016-4-12 15:48:44 显示全部楼层
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

复制代码
PPT学习论坛
回复 支持 反对

使用道具 举报

9

主题

193

帖子

27

幻币

一流武者

Rank: 3Rank: 3

积分
232
QQ
2016-4-12 15:52:55 显示全部楼层
不错,虽然是将所有的Shape导出了,学习一下
PPT学习论坛
回复 支持 反对

使用道具 举报

10

主题

200

帖子

39

幻币

一流武者

Rank: 3Rank: 3

积分
271
QQ
2016-4-12 16:41:40 显示全部楼层
word 不能用,有办法么
PPT学习论坛
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册