VBA Для каждой петли для склеенных фигур в Visio - PullRequest
0 голосов
/ 01 декабря 2010

Я пытаюсь перебрать склеенные формы, и он выполняет итерацию один раз, а затем разрывает, выдавая Me.Application.ActivePage.Shapes (i) .GluedShapes (visGluedShapesAll2D, "") во время второй итерации. Конечно, если он работает правильно на первой итерации, он должен работать правильно на второй и третьей и т. Д ...

В этом коде я бегу по всем фигурам в поисках определенного типа, затем перебираю массив GluedShapes и проверяю, равен ли его идентификатор идентификатору, возвращенному для элемента массива.

Код выглядит следующим образом:

 For i = 1 To Me.Application.ActivePage.Shapes.Count
        If InStr(Me.Application.ActivePage.Shapes(i).Name, "Flow Connector") > 0 Then
            For Each j In Me.Application.ActivePage.Shapes(i).GluedShapes(visGluedShapesAll2D, "")
                If s.ID = j Then
                End If
            Next j
        End If
    Next i

Спасибо, любая помощь будет оценена.

1 Ответ

0 голосов
/ 01 декабря 2010

Нет необходимости циклически перебирать все фигуры, которые я мог бы просто использовать

 Dim s As Shape
 Dim id As Variant

 Set s = Application.ActiveWindow.Page.Shapes.ItemFromID(Selection.PrimaryItem.id)

 id = s.GluedShapes(visGluedShapesAll1D, "")(0)

Где s - текущая фигура, а приведенное выше дает мне идентификатор первой фигуры, к которой моя текущая фигура приклеена в качестве этой фигуры.можно подключить только к одной родительской фигуре.

...