Word VBA: Определить, что выделено

Автор Anton, 27 апреля 2017, 16:07

Anton

Как можно определить, что выделено что-то или где находится курсор?
Например, если выделен рисунок, то вывести сообщение, что выбран рисунок (ну или рисунок на полотне) или что курсор находится в таблице или находится в тексте.

Администратор

Одной какой-то команды нет, чтобы узнать, что выделено.
В зависимости от задачи нужно использовать соответствующий инструмент.

Anton

Задача такая: если выделен рисунок, то у меня совершаются одни действия, если таблица, то другие, если текст, то еще что-то. Это никак не решается?

Просто если запускается код для изменения высоты строк таблицы, к примеру, а выделен рисунок, то возникает ошибка и т.д.

Администратор

Инструмент 1
Selection.Type

wdSelectionInlineShape - если выделен рисунок, вставленный в абзац
wdSelectionShape - если выделен плавающий рисунок
wdSelectionNormal  - если выделен фрагмент. Например, несколько символов, текст и рисунки.

Инструмент 2
Selection.Information

wdWithInTable - если выделена только таблица (без текста, который находится за пределами таблицы), если курсор находится в таблице

Инструмент 3
Использование "Count" соответствующей коллекции

Selection.ShapeRange.Count
Selection.InlineShapes.Count
Selection.Tables.Count

Anton

Огромное спасибо за Вашу помощь!