Еще один способ выделения на листе. Линией и не только.
У нас уже представлен один способ, здесь (
http://visio.getbb.ru/viewtopic.php?f=15&t=671&st=0&sk=t&sd=a)
Вот еще подобное:
Код (Одноразовое выделение для линии. Чтобы было как на картинке - раскомментировать/закомментировать нужные строки)
Запускать процедуру Start_SelectByLine
Код:
Option Explicit
Dim tmpS As Boolean
Sub Start_SelectByLine()
Application.DoCmd (1221) 'Включение инструмента Линия
tmpS = True
End Sub
'Sub Stop_SelectByLine()' Раскомментировать для отключения (при многоразовой операции)
' tmpS = False
' Application.DoCmd (1907) ' Включение Обычного выделения
'End Sub
Private Sub Document_ShapeAdded(ByVal Shape As IVShape)
If tmpS Then
Dim Sel As Visio.Selection
Set Sel = Shape.SpatialNeighbors(visSpatialContain + visSpatialOverlap + visSpatialTouching, 0, 0) 'определение пересечений временной линии
ActiveWindow.Selection = Sel
Shape.Delete 'удаление временного шейпа
Application.DoCmd (1907) ' Закомментировать для многоразового действия
tmpS = False ' Закомментировать для многоразового действия
End If
End Sub
' Код поместить в модуль документа.