使用 Visual Basic 在 vi​​sio 中按主筛选形状

Filter shapes by master in visio using Visual Basic

设置如下: 我正在使用 Visio 使用模板中的不同形状创建图表。稍后我将有 excel 个文件,其中的数据连接到不同类型的形状。 excel 文件将定期更新。由于图表将非常复杂,因此形状将具有链接到当前文档中形状的超链接。对于超链接,我喜欢根据它们的含义来命名形状。这将手工完成一次。

所以我现在想要完成的是以编程方式更改与形状名称匹配的形状数据。由于不同类型的形状分配了不同的数据集,我需要一种方法来通过 kind/appearance 过滤文档中的形状。 例如: 三角形具有指定为形状数据的日期,矩形具有邮政编码。有两个名为 Bert 和 Ernie 的三角形和三个名为 Huey、Dewey 和 Louie 的矩形,应分配相应的形状数据。

如何确定 sheet-Object 中的形状集合中哪些是三角形,哪些是矩形?

顺便说一句:Master-属性 有一个 Name 和 NameU(以及更多字段),但是当您为形状命名时,它们会发生变化。到目前为止,这是我尝试过的。运气不好。

如有任何建议,我们将不胜感激。

Dacrow28

由于无法将代理人的评论标记为答案,因此我将引用他的评论。

PS if you change master-shape name, shp.Master.NameU property contain native master-shape name !

谢谢代理人。就是那个。我完全忽略了 Master,完全错误地专注于 MasterShape。 shp.Master.NameU 和 shp.Master.Name 在给 entity/shape 形状名称时不会改变。

您可以使用 Selection 对象获取特定母版的所有形状,它的执行速度应该比搜索每个形状都要快。

使用Page.CreateSelection方法,你