欢迎光临散文网 会员登陆 & 注册

Word VBA:批量导出Visio对象为图片

2022-07-16 17:44 作者:ch_j  | 我要投稿

一、思路

因为Word中的Visio对象也是Word中的域,所以在遍历的时候既可以遍历文档中的域(fields),也可以遍历 文档中的图片(inlineshapes)。本文是用遍历域的方法:

1.遍历文档中的域fd

2.判断每一个域fd

如果域代码中包含【EMBED Visio.Drawing.】,则说明是Visio对象,可以进行后续处理。

3.二进制存储

对于这个域的图片的二进制内容【fd.InlineShape.Range.EnhMetaFileBits】,使用【ADODB.STREAM】对象进行如下操作:

(1)以二进制方式打开【ADODB.STREAM】对象

(2)将这个域的图片的二进制内容【fd.InlineShape.Range.EnhMetaFileBits】写入(write)【ADODB.STREAM】对象

(3)将写入的内容存储为文件【savetofile】

(4)关闭【ADODB.STREAM】对象

二、示例代码

1.代码

2.运行效果

(1)示例文件

示例文档有2幅Visio图片

(2)复制代码-运行

创建模块-运行

(3)选择存储位置

选择存储位置-确定

(4)存储完成

完成

(5)查看文件

存储文件夹
图片1
图片2

三、注意

Word VBA中通过【ADODB.STREAM】对象存储图片只支持【.emf】格式,需要【.jpg】格式需要借助其他API函数处理。此处没有进行转换。

可以将这些图片通过其他批处理方式,转换一下格式即可。


Word VBA:批量导出Visio对象为图片的评论 (共 条)

分享到微博请遵守国家法律