2008-09-30 4 views
4

Visio에서 모양 앞이나 뒤에 모양이 있는지 확인할 수있는 방법이 있습니까?Visio VBA 기능을 사용하여 모양 앞뒤에 모양이 있는지 확인합니다.

페이지에서 각 모양의 경계 상자가 내 모양과 동일한 공간을 차지하는지 확인하는 내용을 작성할 수 있다고 상상해보십시오. 드로잉이 점점 더 많아 질수록 각 셰이프를 확인하는 데 오랜 시간이 걸릴 수 있으므로 내장 된 것을 사용하고 싶습니다.

답변

3

Shape.SpatialRelation 속성은 두 도형이 접촉했는지 여부를 알려줍니다. 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 

읽기 자세한 내용은 여기 :

Shape.SpatialRelation Property on MSDN

다음

은 간단한 예입니다
관련 문제