今年大火的ChatGPT似乎无所不能,但是它的确不是万能的,咱们来试试。

提供的代码根本无法运行,继续问,换了个代码,非常不幸的是–还是不能用。

Word VBA中并没有内置的方法可以直接导出图片,ChatGPT没有正确的答案也是可以理解的。

示例代码如下。

Sub ExportInlineShps()Dim intIdx As IntegerDim strPath As StringWith ActiveDocumentIf .InlineShapes.Count > 0 ThenstrPath = .Path & "\"For intIdx = 1 To .InlineShapes.CountsSaveImg .InlineShapes(intIdx), strPath & intIdx & ".png"NextElseMsgBox "文档中没有图片"End IfEnd With
End Sub

【代码解析】
第5行代码判断活动文档中是否存在图片(InlineShape)。
如果不存在图片,第11行代码将显示提示消息框。
如果存在图片,第11行代码将显示提示消息框。
第6行获取活动文档的目录。
第7~9行代码调用sSaveImg过程将图片保存为PNG图片。

Sub sSaveImg(ByVal objShp As InlineShape, ByVal strFullPath As String)Const TAG_S = "<pkg:binaryData>"Const TAG_E = "</pkg:binaryData>"Dim objNode As Object 'MSXML2.IXMLDOMElementDim lngStart As Long, lngEnd As LongDim bytImage() As ByteDim strXML As StringDim rngShp As RangestrXML = objShp.Range.WordOpenXMLlngStart = InStr(strXML, TAG_S)If lngStart = 0 ThenMsgBox "无法定位图片数据"Exit SubElselngStart = lngStart + Len(TAG_S)lngEnd = InStr(lngStart, strXML, TAG_E)strXML = Mid$(strXML, lngStart, lngEnd - lngStart)Set objNode = CreateObject("MSXML2.DOMDocument").createElement("b64")objNode.DataType = "bin.base64"objNode.Text = strXMLbytImage = objNode.nodeTypedValueOpen strFullPath For Binary As #1Put #1, 1, bytImageClose #1Set objNode = NothingEnd If
End Sub

【代码解析】
第一个参数为InlineShape,即Word中的图片,第二个图片是图片文件的全路径。
第2~3行代码定义图片对象XML起始标签和结束标签。
第9行代码获取图片对象的XML代码。
第10行代码查找XML起始标签。
如果无法定位XML起始标签,第12行代码将显示提示消息框。
如果成功定位XML起始标签,第13行代码将获取图片对象(Base64编码)的起始位置。
第16行代码查找XML结束标签。
第17行代码提取图片对象(Base64编码)的XML代码。
第18行代码创建MSXML2.DOMDocument对象,并增加一个节点。
第19行代码设置数据类型为bin.base64
第20行代码将图片对象(Base64编码)的XML代码赋值给节点。
第21行代码读取结点的nodeTypedValue属性,并保存在Byte数组中。
第22~24行代码将图片对象保存为硬盘文件。
第25行代码释放对象变量占用的系统资源。

ChatGPT搞砸了~,如何使用VBA导出Word文档中的图片相关推荐

  1. 通过VBA导出word文档中的图片

    一.问题重述: 工作中,经常有同事把新闻的照片贴在word文档中发过来,需要把照片一张张的转存成图片. 二.原始方法: 在文档中的照片上,右键,图片另存为-- 把文档,按F12,另存为网页文件,然后在 ...

  2. 【Python】批量导出word文档中的图片、嵌入式文件

    Python 批量导出word文档中的图片.嵌入式文件 需求 学生试卷中的题目有要提交截图的,也有要提交文件的,为了方便学生考试,允许单独交或者嵌入Word中提交,那么事后如何整理学生的答案?单独提交 ...

  3. 5导出word_妙招技法 | 教你如何快速导出Word文档中的图片

    关注[新精英充电站]能力提升看得见! 我们在翻阅一些比较好的Word文档时,经常想要将文档中用到的一些好的图片素材保留下来,但却苦于不知道怎么保存,最后只有无奈放弃. 其实,Word中提供有导出图片的 ...

  4. vue 导出word文档(包括图片)

    vue 导出word文档(包括图片) 1.打开终端,安装依赖 -- 安装 docxtemplater npm install docxtemplater pizzip --save-- 安装 jszi ...

  5. WORD文档中插入图片(1)

    (转) 在WORD文档中插入图片有两种方法:一种是添加到文档的文本层(嵌入型版式):一种是添加到文档的图形层(其他版式).     文本层的图片是不可以设置版式的,而图形层的版式是可以设置的,但只能是 ...

  6. C#操作Word(五)——在Word文档中插入图片

    实例说明 在Word文档的使用过程中,我们可以轻松的向文档中插入图片信息,那么,怎样使用C#向Word文档中插入图片呢?本实例将会介绍一种方法,可以方便的实现上述功能.实例运行效果如图1所示.   图 ...

  7. Python3-word文档操作(八):提取word文档中的图片方式一-利用docx库

    1. 简介: 要获取word文档中的图片文件.思路就是先解压,再查找.python中,下面两个库都可以实现这个功能: (1)zip库 (2)docx库 zip库: 上一篇博文已经提过,word本质上也 ...

  8. C# 提取Word文档中的图片(用Spire)

    C# 提取Word文档中的图片 图片和文字是word文档中两种最常见的对象,在微软word中,如果我们想要提取出一个文档内的图片,只需要右击图片选择另存为然后命名保存就可以了,今天这篇文章主要是实现使 ...

  9. C# 提取Word文档中的图片

    图片和文字是word文档中两种最常见的对象,在微软word中,如果我们想要提取出一个文档内的图片,只需要右击图片选择另存为然后命名保存就可以了.今天这篇文章主要是实现如何使用C#从word文档中提取图 ...

最新文章

  1. 诚意租房网blog2
  2. hp-ux mysql_HP-UX安装MySQL
  3. [初级]Java中的switch对整型、字符型、字符串的具体实现细节
  4. 1.0 算法本机调试方法
  5. 胃癌2019csco指南_2019 CSCO胃癌诊疗指南精华来了!
  6. ENSP配置 实例五 RIP配置
  7. 特斯拉得克萨斯超级工厂正式开业 计划明年开始生产电动皮卡
  8. unity 关闭自己脚本_太可了!这些领域可以把Unity玩的那么好,带你开启新世界...
  9. C/C++ inline 函数
  10. (23)Linux下Clion中搭建opencv环境
  11. BLE芯片商总结和市场趋势分析【选型使用,建议收藏】
  12. 自制的一个小地图生成器
  13. 微博奥运营销策略复盘,探索双十一微博品牌营销新手法!!
  14. 2023年五面蚂蚁、三面拼多多、字节跳动最终拿offer入职拼多多
  15. 工信部通报今年首批问题App 当当、1药网私自收集个人信息 被通报的16款App名单
  16. axios 官方指南翻译
  17. jQuery之datetimepicker控件(时间单位精确到分钟)
  18. 专 业 学 习 成 果
  19. 手机php网站开发工具,4款好用的网站开发工具推荐
  20. component-kv设计与实现

热门文章

  1. python3 爬虫学习:自动给你心上人的微博点赞(一)
  2. IPv6子网数量计算器
  3. python的文件操作、模块操作、os模块、time、datatime模块以及模块的制作
  4. 昆明理工大学计算机学院李博,昆明理工大学
  5. 软件测试面试注意事项汇总
  6. 【小程序开发实战】使用WxJava实现手机号获取
  7. FPGA学习-Verilog例化说明
  8. 如何计算摄影参数:分区基准面高程、相对航高、绝对航高、基线长度、航线间隔、航线数、每条航线的相片数、总相片数。
  9. ios 常用的30个动画效果
  10. 俄罗斯方块【附源码】