【发布时间】:2018-02-23 13:11:23
【问题描述】:
我正在尝试使用 VBA 遍历当前 visio 文档的所有形状以从中导出一些字符串。
看起来很简单,但我不知道如何获得分组形状。
通过做:
Dim vsoShapes AS Visio.Shapes
Dim vsoShape AS Visio.Shape
Set vsoShapes = Application.ActiveWindow.Page.Shapes
For Each vsoShape In vsoShapes
' my code
' my code
Next
我将访问所有父形状。我想要的是访问孩子们的形状。 是否可以在不取消分组(父)形状的情况下访问它?
【问题讨论】:
-
您可以访问组形状,即:
vsoShape.Shapes(1).Name -
实际上常规形状可以有子形状,例如泳道...所以我认为这段代码无效,您需要通过查看组属性部分来确定哪些形状是组...
-
所以也许这是更好的方法: If Shp.GroupItems.Count > 0 Then Shp.Ungroup Else ....
-
找到它:Shape.Type 属性保持标记如果形状是组:msdn.microsoft.com/en-us/library/office/ff767768.aspx 所以在获得组形状后,您可以继续提取子形状...干杯