図形の前/後ろに図形があるかどうかを確認するVisio VBA機能

StackOverflow https://stackoverflow.com/questions/154408

  •  03-07-2019
  •  | 
  •  

質問

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

詳細はこちら:

MSDNのShape.SpatialRelationプロパティ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top