Word VBA:批量導出Visio對象為圖片
一、思路
因為Word中的Visio對象也是Word中的域,所以在遍歷的時候既可以遍歷文檔中的域(fields),也可以遍歷 文檔中的圖片(inlineshapes)。本文是用遍歷域的方法:
1.遍歷文檔中的域fd
2.判斷每一個域fd
如果域代碼中包含【EMBED Visio.Drawing.】,則說明是Visio對象,可以進行后續(xù)處理。
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)復制代碼-運行

(3)選擇存儲位置

(4)存儲完成

(5)查看文件



三、注意
Word VBA中通過【ADODB.STREAM】對象存儲圖片只支持【.emf】格式,需要【.jpg】格式需要借助其他API函數(shù)處理。此處沒有進行轉換。
可以將這些圖片通過其他批處理方式,轉換一下格式即可。
標簽: