0

図形gluedshapesをループしようとしていますが、1回反復すると、2回目の反復中に Me.Application.ActivePage.Shapes(i).GluedShapes(visGluedShapesAll2D, "") で「無効なパラメーターエラー」が発生して中断します。確かに、最初の反復で正しく実行されれば、2 回目と 3 回目などでも正しく実行されるはずです...

このコードでは、特定の型を探してすべての図形を実行しています。次に、GluedShapes 配列を反復処理し、その ID が配列要素ごとに返された ID と等しいかどうかを確認します。

コードは次のとおりです。

 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

ありがとう、助けていただければ幸いです。

4

1 に答える 1

0

使用できるすべての形状をループする必要はありません

 Dim s As Shape
 Dim id As Variant

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

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

ここで、s は現在の形状であり、上記は現在の形状が接着されている最初の形状の ID を示しています。この形状は 1 つの親形状にしか接続できないためです。

于 2010-12-01T14:05:57.313 に答える