VB 将 Visio 文档的特定页面放入 Word 的代码

VB code to place specific page of Visio document into Word

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

目前,我的 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`

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

Mathieu Guindon 的 post 使我找到了答案(本来可以将其投票为答案,但似乎不是一个选项)。无论如何,在 编辑的代码 post 提供了我的解决方案的基础。为 Visio.Application 对象设置一个变量并引用它以获取用户选择的 Visio 文件的页数(如果用户选择的页码在文件中不可用,则用于错误捕获)和复制用户选择的页面。