Для русскоязычных пользователей Visio. Начинающих и профессионалов. Где взять, как сделать, что купить и т.д.

Selection

Перечень литературы

06.08.2017  Метод Selection.Select (Visio)   Microsoft    

17.03.2008  Detect Sub-selected Shapes Programmatically   Chris Roth    

Ответы на вопросы

Как выделить фигуры на слое?

Подскажите, как программным образом, произвести выделение определенных фигур на каком-то определенном слое.  

Как я понимаю, делается это долго и нудно. Селектированные шейпы являются членами коллекции Selection. (Window/Selection). Коллекция слоев относится к странице документа Document/Page/Layers. Привязка шейпа к слою определяется в секции Layer Membership. Вот и получается, что нужно найти индекс нужного слоя, а потом перебирать все шейпы на странице и проверять, не относятся ли они к нужному слою. А уж если относятся, то включать их в коллекцию Selection методом Select от окна. Типа winObj.Select shpObj,visSelect где winObj - окно shpObj - селектируемый шейп visSelect - константа такая. Чтобы другие не мешались, возможно придется также использовать visDeselect или visDeselectAll. Да, если хочется еще и только определенные шейпы выбрать, то вдобавок нужно проверять, такой ли это шейп, например, по имени.