首页 > 解决方案 > 将 Visio 文档的特定页面放入 Word 的 VB 代码

问题描述

我一直在研究一个 Word 宏,其中包含一个允许用户选择 Visio 文件并将其插入到活动 Word 文档中的步骤。由于许多源 Visio 文件是多页的,并且要放置在 Word 中的特定 Visio 绘图可能位于 Visio 文档的任何页面上,因此我需要一种方法来允许用户选择他们想要放置的页面。

目前,我的 VBA 代码使用 Appplication.FileDialog(msoFileDialogFilePicker) 为 Visio 绘图的文件路径 (myVisioPath) 设置一个变量,然后为 Visio 文件创建一个变量并将其插入到 Word 文档中,如下所示:

Dim myViz As InlineShape
Set myViz = ActiveDocument.InlineShapes.AddOLEObject(ClassType:="Visio.Drawing.15", FileName:=myVisioPath, LinkToFile:=False, DisplayAsIcon:=False, Range:=Selection.Range)
myViz.Select `Selects the Visio for subsequent actions`

宏的当前工作版本选择所选 Visio 文件第 1 页上的任何内容。我需要一种方法来允许用户选择第 2 页或第 3 页,或 Visio 文件中目标绘图所在的任何页面。目前,我正在考虑创建一个用户表单以允许选择页码,但我愿意接受建议。

标签: vbams-wordvisio

解决方案


Mathieu Guindon 的帖子让我找到了答案(本来会投票给它作为答案,但这似乎不是一个选项)。无论如何,在 Visio 中选择活动页面上发布的代码提供了我的解决方案的基础。为 Visio.Application 对象设置一个变量并引用它以获取用户选择的 Visio 文件的页数(如果用户选择文件中不可用的页码,则用于错误捕获)并复制用户选择的页面。


推荐阅读