чертеж у меня разделен на области - большими боксами сидящими в заблокированном слое. нужно определить каким именно боксом накрыт выбранный шейп/группа шейпов. хотел SpatialNeighbors использовать.
Public Function Getstage(ByVal sh As Visio.Shape) As String
delta = 100000
Debug.Print sh
Set vs = sh.SpatialNeighbors(3, delta, 0)
For Each X In vs
Debug.Print "shape " & X
Next X
Getstage = "X1"
End Function
Sub aaaa_test342()
Set vs = Application.ActiveWindow.Selection
a = Getstage(vs(1))
Debug.Print "end"
End Sub
т.е среди близких шейпов ведь по любому будет этот бокс. его можно выбрать, а дальше уже дело техники.
все работает. если выделяешь шейп 2дшный (круг на чертеже), с шейпами типа линия - не работает. почему ?
пример - http://rapidshare.de/files/48090786/stage.vsd.html
выделите круг/прямоугольник. запустите скрипт. почувствуйте разницу ((