【问题标题】:VB code to place specific page of Visio document into Word将 Visio 文档的特定页面放入 Word 的 VB 代码
【发布时间】:2020-03-07 14:16:33
【问题描述】:

我一直在研究一个 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 文件中目标绘图所在的任何页面。目前,我正在考虑创建一个用户表单以允许选择页码,但我愿意接受建议。

【问题讨论】:

  • 如果您需要操作Visio 文档,那么您需要使用Visio 的对象模型。 Visio 文档对象引用位于myViz.OLEFormat.Object

标签: vba ms-word visio


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多