我一直在处理一个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页上的任何内容。我需要一种方法来允许用户在Visio文件中选择第2页、第3页或目标绘图所在的任何页面。目前,我正在考虑创建一个允许选择页码的用户表单,但我对建议持开放态度。
发布于 2019-12-10 18:24:37
Mathieu Guindon的帖子让我找到了答案(我会投票给它作为答案,但这似乎不是一个选择)。无论如何,Choose active page in Visio上发布的代码提供了我的解决方案的基础。为Visio.Application对象设置一个变量并引用它,以获取用户选择的Visio文件的页数(如果用户选择的页码在文件中不可用,则用于错误捕获)和复制用户选择的页面。
https://stackoverflow.com/questions/58809056
复制