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

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.dtcms.com/a/215493.html

相关文章:

  • Nginx--手写脚本压缩和切分日志(也适用于docker)
  • 【Java实战】集合排序方法与长度获取方法辨析(易懂版)
  • Python实现VTK-自学笔记(5):在三维世界里自由舞蹈——高级交互与动态可视化
  • 得物Java开发面试题及参考答案(下)
  • 力扣面试150题--完全二叉树的节点个数
  • 【数据结构】单链表练习
  • openresty+lua+redis把非正常访问的域名加入黑名单
  • 百度ocr的简单封装
  • AWS之AI服务
  • 基于Python的简易聊天机器人实现:从原理到实践
  • AWS WebRTC:获取信令服务节点和ICE服务节点
  • SAP-ABAP:在DEBUG过程中修改内表中的数据的方法详解
  • go并发与锁之sync.Mutex入门
  • 鸿蒙仓颉开发语言实战教程:自定义组件
  • ubuntu2x.xx网络不通如何解决
  • 使用requestAnimationFrame编写动画效果或者处理大量数据
  • 基于Java,SpringBoot,Vue,UniAPP宠物洗护医疗喂养预约服务商城小程序管理系统设计
  • OpenGL Chan视频学习-9 Index Buffers inOpenGL
  • Netty创新架构突破链接数瓶颈技术,如何应用于新能源汽车智慧充电桩?
  • Elasticsearch的运维
  • etcd:高可用,分布式的key-value存储系统
  • 5 WPF中的Page页面的使用
  • 【NLP基础知识系列课程-Tokenizer的前世今生第一课】Tokenizer 是什么?为什么重要?
  • React 第四十八节 Router中 useMatch 的使用详细介绍及案例分析
  • LVS 负载均衡群集
  • Kotlin 中 Lambda 表达式的语法结构及简化推导
  • 前端 reconnecting-websocket 包
  • Windows逆向工程提升之IMAGE_TLS_DIRECTORY
  • 三、OrcaSlicer预设显示
  • 交换机 路由器