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

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.lryc.cn/news/2394873.html

相关文章:

  • 把数据库做得能扩展:Aurora DSQL 的故事
  • 全面解析:npm 命令、package.json 结构与 Vite 详解
  • 【本地部署】 Deepseek+Dify创建工作流
  • Rust 配置解析`serde` + `toml`
  • linux进程用户态内存泄露问题从进程角度跟踪举例
  • 数据结构-图的应用,实现环形校验和拓扑排序
  • 交换机 路由器
  • 某乎x-zse-96 破解(补环境版本)
  • VSCode+Cline 安装配置及使用说明
  • Java中Redis面试题集锦(含过期策略详解)
  • Maven 安装与配置指南(适用于 Windows、Linux 和 macOS)
  • android 媒体框架之MediaCodec
  • 堆与堆排序及 Top-K 问题解析:从原理到实践
  • Linux中检查当前用户是不是root
  • 软件锁:守护隐私,安心无忧
  • 无人机桥梁3D建模、巡检、检测的航线规划
  • 项目:贪吃蛇实现
  • 【Java基础05】面向对象01
  • 设计模式:观察者模式 - 实战
  • 8.8 Primary ODSA service without ODSA Portal
  • YOLOv8 移动端升级:借助 GhostNetv2 主干网络,实现高效特征提取
  • 国产化Word处理控件Spire.Doc教程:在 C# 中打印 Word 文档终极指南
  • java的vscode扩展插件
  • 谷歌:贝叶斯框架优化LLM推理反思
  • Qt SQL模块基础
  • [9-3] 串口发送串口发送+接收 江协科技学习笔记(26个知识点)
  • java 微服务中,微服务相互调用 feign 和flux 如何选择
  • 如何在Qt中绘制一个带有动画的弧形进度条?
  • 参加技术会议,为程序人生的职业生涯成长添砖加瓦
  • 国产三维CAD皇冠CAD(CrownCAD)建模教程:汽车电池