当前位置: 首页 > java >正文

word批量导出visio图

具体步骤

  • 修改word格式
  • 打开VBA窗口
  • 插入代码
  • 运行代码

修改word格式

在这里插入图片描述
将word文档修改为docm格式

打开VBA窗口

在这里插入图片描述
打开开发工具VisualBasic项,如果没有右键在自定义功能区添加

插入代码

在这里插入图片描述
插入 -> 模块,代码如下:

Sub ExportAllVisioDiagrams()Dim shp As InlineShapeDim i As IntegerDim savePath As StringDim docName As StringDim visioApp As ObjectDim visioDoc As ObjectDim startTime As Double' 设置保存路径(修改为您想要的路径)savePath = "C:\Users\"' 创建文件夹(如果不存在)If Dir(savePath, vbDirectory) = "" Then MkDir savePath' 获取文档名称(不含扩展名)If ActiveDocument.Name Like "*.*" ThendocName = Left(ActiveDocument.Name, InStrRev(ActiveDocument.Name, ".") - 1)ElsedocName = ActiveDocument.NameEnd If' 创建Visio应用实例Set visioApp = CreateObject("Visio.Application")visioApp.Visible = True ' 设置为可见以便调试i = 1For Each shp In ActiveDocument.InlineShapesIf shp.Type = wdInlineShapeEmbeddedOLEObject ThenIf InStr(1, shp.OLEFormat.ProgID, "Visio", vbTextCompare) > 0 ThenOn Error Resume Next' 激活并选择Visio对象内容shp.OLEFormat.Activateshp.OLEFormat.Object.Application.ActiveWindow.SelectAllshp.OLEFormat.Object.Application.ActiveWindow.Selection.Copy' 创建新Visio文档Set visioDoc = visioApp.Documents.Add("")' 添加延迟确保复制完成startTime = TimerDo While Timer < startTime + 1DoEventsLoop' 粘贴内容visioApp.ActiveWindow.Page.Paste' 保存文件visioDoc.SaveAs savePath & docName & "_Diagram" & i & ".vsdx"If Err.Number <> 0 ThenvisioDoc.SaveAs savePath & docName & "_Diagram" & i & ".vsd"End IfvisioDoc.CloseSet visioDoc = Nothingi = i + 1' 每处理3个图表后增加延迟If i Mod 3 = 0 ThenstartTime = TimerDo While Timer < startTime + 2 ' 延迟2秒DoEventsLoopEnd IfOn Error GoTo 0End IfEnd IfNext shp' 关闭VisiovisioApp.QuitSet visioApp = NothingMsgBox "已导出 " & (i - 1) & " 个Visio图表到 " & savePath
End Sub

运行代码

在这里插入图片描述
点击运行 -> 运行子过程即可

http://www.xdnf.cn/news/9266.html

相关文章:

  • 图标变白,开始菜单栏无法打开程序(以jupyter为例)
  • ARM内核一览
  • Mac安装MongoDB数据库以及MongoDB Compass可视化连接工具
  • 【数据结构】单链表练习
  • 改进系列(12):基于SAM交互式点提示的UNet腹部多脏器分割方法研究
  • 【北京盈达科技】GEO优化:引领AI时代内容霸权,重塑行业生态
  • 思澈科技助力Keep Watch Pilot 1:重新定义智能运动手表体验
  • React 虚拟dom
  • ROS2 robot控制学习(一)
  • 自然语言×数据集成新范式:SeaTunnel MCP深度解读 | 附视频讲解
  • 重新安装解决mac vscode点击不能跳转问题
  • 树莓派(Raspberry Pi)安装Docker教程
  • LabVIEW软件开发过程中如何保证软件的质量?
  • 大数据-272 Spark MLib - 基础介绍 机器学习算法 线性回归
  • openresty如何禁止海外ip访问
  • 【git】git rebase 和 git pull区别?
  • NSSCTF [NISACTF 2022]ezheap
  • 微信小程序的软件测试用例编写指南及示例--性能测试用例
  • 使用Gemini, LangChain, Gradio打造一个书籍推荐系统 (第三部分)
  • 查服务器信息 常用的一些命令 =^^ =
  • 共现矩阵的SVD降维与低维词向量计算详解
  • AI 智能体的那些事—架构设计关键点
  • 【Java实战】集合排序方法与长度获取方法辨析(易懂版)
  • 11.Java I/O 流:文件读写与数据持久化​
  • 夏季用电高峰如何防患于未“燃”?电力测温技术守护城市生命线
  • 使用 Redis 作为向量数据库
  • 5G 核心网 UE 状态深度剖析:机制、迁移与演进
  • 新版Chrome浏览器加载eDrawings 3D Viewer控件网页查看DWG、DXF
  • 利用Tushare+pyEcharts进行沪深证券数据采集与分析
  • 单向循环链表与双向链表