Форум по VBA и MS Office

Word => Макросы в Word => Тема начата: Anton от 19 декабря 2016, 15:35

Название: Word Макросы: Получить параметры форматирования справа от курсора
Отправлено: Anton от 19 декабря 2016, 15:35
Добрый вечер! Пытаюсь сделать макрос, который покажет, какие параметры имеет символ, расположенный справа от курсора, интересует:
1. Тип шрифта
2. Размер шрифта
3. Интервал шрифта
4. Междустрочный интервал (для текущего абзаца с курсором)
5. Интервал перед и после (для текущего абзаца с курсором)
6. Отступы слева и справа  (для текущего абзаца)
7. Отступ первой строки (для текущего абзаца)
8. Выравнивание (слева, по центру и т.д.) (для текущего абзаца)
9. Стиль текста

Можно ли как-то вывести такие сведения для символа, расположенный справа от курсора или хотя бы для абзаца? Если сложно, то посоветуйте пожалуйста, где поискать. Через запись макроса получается только изменить цифры, а вот как определить текущие значения, не пойму.
Название: Re: Word Макросы: Получить параметры форматирования справа от курсора
Отправлено: Администратор от 20 декабря 2016, 18:38
Нужно использовать объект "Range", он смотрит символ справа.
А объект "Selection" смотрит символ слева.

Sub Макрос()
    ' Вывод в View - Immediate Window имени шрифта символа, который находится справа от курсора.
    Debug.Print Selection.Range.Font.Name
End Sub
Название: Re: Word Макросы: Получить параметры форматирования справа от курсора
Отправлено: Anton от 21 декабря 2016, 08:18
Спасибо. Правильно ли будет для абзаца так?

Debug.Print Selection.Range.ParagraphFormat.SpaceBefore
Название: Re: Word Макросы: Получить параметры форматирования справа от курсора
Отправлено: Администратор от 21 декабря 2016, 08:23
Опишите словами, какую информацию вы хотите узнать этим кодом?
Название: Re: Word Макросы: Получить параметры форматирования справа от курсора
Отправлено: Anton от 21 декабря 2016, 08:28
Для абзаца - интервал перед предыдущим абзацем.
Название: Re: Word Макросы: Получить параметры форматирования справа от курсора
Отправлено: Администратор от 21 декабря 2016, 08:32
Да, так. В этом случае можно не использовать объект "Range", а используйте просто "Selection", чтобы не было лишнего в коде.

Вы и сами можете проверить, так это или нет - вручную изменяйте интервал и смотрите, какой результат даёт код. Если код выдаёт разные данные, значит вы правильно делаете.
Название: Re: Word Макросы: Получить параметры форматирования справа от курсора
Отправлено: Anton от 21 декабря 2016, 08:36
Вроде получается. Большое спасибо!