Форум по VBA и MS Office

Word => Макросы в Word => Тема начата: Anton от 27 апреля 2017, 16:07

Название: Word VBA: Определить, что выделено
Отправлено: Anton от 27 апреля 2017, 16:07
Как можно определить, что выделено что-то или где находится курсор?
Например, если выделен рисунок, то вывести сообщение, что выбран рисунок (ну или рисунок на полотне) или что курсор находится в таблице или находится в тексте.
Название: Re: Word VBA: Определить, что выделено
Отправлено: Администратор от 27 апреля 2017, 16:14
Одной какой-то команды нет, чтобы узнать, что выделено.
В зависимости от задачи нужно использовать соответствующий инструмент.
Название: Re: Word VBA: Определить, что выделено
Отправлено: Anton от 27 апреля 2017, 16:20
Задача такая: если выделен рисунок, то у меня совершаются одни действия, если таблица, то другие, если текст, то еще что-то. Это никак не решается?

Просто если запускается код для изменения высоты строк таблицы, к примеру, а выделен рисунок, то возникает ошибка и т.д.
Название: Re: Word VBA: Определить, что выделено
Отправлено: Администратор от 27 апреля 2017, 16:48
Инструмент 1
Selection.Type

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

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

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

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

Selection.ShapeRange.Count
Selection.InlineShapes.Count
Selection.Tables.Count
Название: Re: Word VBA: Определить, что выделено
Отправлено: Anton от 27 апреля 2017, 19:19
Огромное спасибо за Вашу помощь!