図形の前/後ろに図形があるかどうかを確認するVisio VBA機能
質問
Visio VBAには、Visioの図形の前または後ろに図形があるかどうかを確認する方法はありますか?
ページ内の各図形の境界ボックスをチェックして、それが自分の図形と同じスペースを占めるかどうかを確認するものを書くことができると思います。 図形がどんどん図形を取得するので、各図形をチェックするのに時間がかかる可能性があるため、組み込みのものを使用します。
解決
Shape.SpatialRelationプロパティは、2つの形状が接触しているかどうかを示します。 Shape.Indexプロパティは、zオーダーでどちらが前か後ろかを示します。
簡単な例を次に示します。
Public Sub DoShapesIntersect(ByRef shape1 As Visio.Shape, ByRef shape2 As Visio.Shape)
'// do they touch?
If (shape1.SpatialRelation(shape2, 0, 0) <> 0) Then
'// they touch, which one is in front?
If (shape1.Index > shape2.Index) Then
Debug.Print shape1.Name + " is in front of " + shape2.Name
Else
Debug.Print shape1.Name + " is behind " + shape2.Name
End If
Else
Debug.Print "shape1 and shape2 do not touch"
End If
End Sub
詳細はこちら:
所属していません StackOverflow