vba visio shapes

Visio VBA funciona para ver si hay una forma delante/detrás de una forma



shapes (1)

La propiedad Shape.SpatialRelation le indicará si se tocan dos formas. La propiedad Shape.Index le dirá qué está delante o detrás en el orden z.

Aquí hay un ejemplo simple:

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

Leer más aquí:

Propiedad Shape.SpatialRelation en MSDN

¿Hay alguna manera en Visio VBA para ver si hay una forma delante o detrás de una forma en Visio?

Me imagino que podría escribir algo que marque el cuadro delimitador de cada forma en una página para ver si ocupa el mismo espacio que mi forma. Prefiero usar algo incorporado, ya que revisar cada forma podría tomar mucho tiempo a medida que un dibujo obtiene más y más formas.