2015-08-20 5 views
1

Можно ли выбрать фигуры в Visio, указав координаты прямоугольника выделения? Если да, то как это сделать? Мне нужно выбрать и удалить любую фигуру в определенном месте на странице Visio. Я хотел бы иметь возможность указать координаты нижнего левого угла и верхнего правого угла на странице, а vba сказать мне идентификаторы или дескрипторы или что-то, что позволило бы мне удалить эти фигуры, поскольку мне нужно разместить новую формы в этом конкретном месте. Я ищу что-то вродеПрямоугольный выбор формы в visio с помощью vba

shapes = MyVisioPage.SelectByRectangularCrossingBox(lowerleftX,lowerleftY,upperrightX,upperrightY) 
+0

Не то, чтобы я знал. Вы можете прокручивать все фигуры и анализировать их положение и удалять, если они попадают в вашу «область». – MatthewD

ответ

0

Вы могли бы на самом деле нарисовать прямоугольник с этими координатами, а затем использовать Shape.SpatialNeighbors, чтобы выяснить, все фигуры в этом прямоугольнике .. Что-то вроде этого (VBA):

Function SelectByRectangularCrossingBox(page, _ 
    lowerleftX, lowerleftY, upperrightX, upperrightY) As Selection 

    scopeId = page.Application.BeginUndoScope("try") 

     Set rc = page.DrawRectangle(lowerleftX, lowerleftY, upperrightX, upperrightY) 
     Set SelectByRectangularCrossingBox = rc.SpatialNeighbors(visSpatialContain, 0.01, 0) 

    page.Application.EndUndoScope scopId, False 

End Function 

Код отменяется с помощью BeginUndoScope/EndUndoScope для отмены изменений.

+0

Николай, спасибо. Я считаю, что это то, что я искал. –

Смежные вопросы