【问题标题】:How to refer to shapes in Visio vba如何在 Visio vba 中引用形状
【发布时间】:2010-02-14 18:48:24
【问题描述】:

如何在 microsoft visio 中创建可通过正常界面选择的特定形状?我正在寻找类似ActivePage.addShape(type: person, 100,100, 50,50)的代码

msdn 和 visio 帮助文档对于初学者来说有点高级,但是否必须手动添加一个形状,然后通过 vba 给它一个可以理解和再次使用的 id。或者您是否必须创建一个全局子/类,然后引用您已命名的对象。

【问题讨论】:

  • 您可以在 Visio 中录制 VBA 宏

标签: vba visio shapes


【解决方案1】:

你需要的函数叫做 Drop。第一个参数是 dropObject,它可以是对另一个形状、当前选定形状或 Visio 模具中的主对象的引用。

您可以尝试一下,看看它是如何工作的:

Dim ShpObj As Visio.Shape
Set ShpObj = ActivePage.Drop(ActiveWindow.Selection, 100, 50)

因此,使用 ActiveWindow.Selection 意味着 Visio 将复制所选形状并将其放在 100、50 处。

要获得Master,首先需要找到保存Master的模板文档。这是一个示例,从基本形状框图模具中放置一个三角形:

Dim ShpObj As Visio.Shape
Set ShpObj = ActivePage.Drop(Application.Documents("BASIC_U.VSS").Masters("Triangle"))

将 Drop 函数的结果设置为 ShpObj 意味着您可以稍后在代码中引用它。否则,Page 类中有一个 Shapes 集合,其中包含页面中的所有形状。

希望这将为您在 Visio VBA 中编程提供一个良好的开端。

【讨论】:

  • 我知道我不久前问过这个问题,但我不得不承认其他尝试过我还没有尝试过这个解决方案的人。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-02
相关资源
最近更新 更多