Выберите сгруппированные фигуры в VBA (Visio)


Я пытаюсь запустить все формы моего текущего документа visio, используя VBA для экспорта некоторых строк из него.

Это кажется простым, но я не знаю, как получить сгруппированные фигуры.

Делая:

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

Я собираюсь получить доступ ко всем родительским фигурам. То, что я хочу, - это получить доступ к формам детей. Можно ли получить к нему доступ, не разгруппировывая сгруппированную (родительскую) фигуру?

1 2

1 ответ:

Можно использовать свойство Shapes, т. е. vsoShape.Shapes(1).Name.

Полный цикл:

Dim vsoShapes AS Visio.Shapes
Dim vsoShape AS Visio.Shape
Dim i As Integer
Dim shapeCount As Integer

Set vsoShapes = Application.ActiveWindow.Page.Shapes
For Each vsoShape In vsoShapes
  shapeCount = vsoShape.Shapes.Count
  If shapeCount > 1 Then
    i = 1
    For i = 1 To shapeCount
      MsgBox vsoShape.Shapes(i).Text
    Next i
  End If
Next