如何用vba把word中的图片导出为独立的图片格式文件?

在word中的图形对象有InlineShape对象和Shape对象,其中InlineShape对象表示的是嵌入到文本层的图片,就像是文字的一部分一样,而Shape对象是悬浮于文本之上位于图形层,两者有区别。

如果想要把所有的图形对象导出为独立的图片格式文件,可以借组EnhMetaFileBits属性。

EnhMetaFileBits属性返回的是把word中的选择区域当做是一个图片,然后返回该图片的增强型图元文件字节流。

它相当于API函数GetEnhMetaFileBits ,由于增强型图元文件的文件格式默认是emf,所以在将字节流保存为图片时,默认指定扩展名为emf。

以下代码可以实现将word中的各种图形导出为独立的图片格式的

vbnet 复制代码
Sub QQ527524938()
    Const adTypeBinary = 1
    '默认文本数据
    Const adTypeText = 2
    '指定保存到文件时不覆盖,只新建
    Const adSaveCreateNotExist = 1
    '指定保存到文件时覆盖原文件,没有则新建
    Const adSaveCreateOverWrite = 2
    Dim oStream As Object
    Dim arr() As Byte
    Set oStream = VBA.CreateObject("adodb.stream")
    i = 1
    Dim oDoc As Document
    Set oDoc = Word.ActiveDocument
    Dim oSP As Shape
    Dim sPath As String
    sPath = oDoc.Path & "\"
    Dim oInLineSp As InlineShape
    With oDoc
        For Each oSP In .Shapes
            oSP.Select
            arr = Word.Selection.EnhMetaFileBits
            With oStream
                .Open
                .Type = adTypeBinary
                .Write arr
                .SaveToFile sPath & i & ".emf", adSaveCreateOverWrite
                .Close
            End With
            i = i + 1
        Next
        For Each oInLineSp In .InlineShapes
            arr = oInLineSp.Range.EnhMetaFileBits
            With oStream
                .Open
                .Type = adTypeBinary
                .Write arr
                .SaveToFile sPath & i & ".emf", adSaveCreateOverWrite
                .Close
            End With
            i = i + 1
        Next
    End With
End Sub

文件。

相关推荐
Access开发易登软件9 分钟前
Access调用Azure翻译:轻松实现系统多语言切换
后端·python·低代码·flask·vba·access·access开发
睿思达DBA_WGX4 小时前
使用 python-docx 库操作 word 文档(3):读取word文档的内容
python·word
cehuishi95274 小时前
excel中关联word邮件合并使用
word·excel·批量打印·邮件合并
SoberChina4 小时前
Jasperreport 导出word 多个element重叠部分导致不显示(不支持)
pdf·word·jaspersoft·模版打印
缺点内向5 小时前
Java:将 Word 文档转换为密码保护的 PDF 文件
java·pdf·word
jaray6 小时前
word和wps下分别设置签名或图片背景透明色的方法
word·wps
龙仔CLL6 小时前
vue3下载图片,pdf,excle,word通用函数
pdf·vue·word
我命由我1234515 小时前
Excel - Excel 列出一列中所有不重复数据
经验分享·学习·职场和发展·word·powerpoint·excel·职场发展
东方芷兰19 小时前
LLM 笔记 —— 08 Embeddings(One-hot、Word、Word2Vec、Glove、FastText)
人工智能·笔记·神经网络·语言模型·自然语言处理·word·word2vec
E_ICEBLUE1 天前
Python 处理 Word 文档中的批注(添加、删除)
开发语言·python·microsoft·word