Форум по VBA, Excel и Word

Word => Макросы в Word => Тема начата: Посетитель от 25 апреля 2022, 00:52

Название: Word VBA Макросы. Не применяется стиль к Paragraph.
Отправлено: Посетитель от 25 апреля 2022, 00:52
Хочу применить к заданному абзацу стиль "Строгий", но происходит ошибка: Rut-time error '5849': Не удается применить стиль:
Sub Макрос()
    ActiveDocument.Paragraphs(1).Style = ActiveDocument.Styles("Строгий")
End Sub

Если же я перед запуском макроса выделяю весь абзац и применяю такой макрос, то ошибки нет:
Sub Макрос()
    Selection.Style = ActiveDocument.Styles("Строгий")
End Sub

Как применить стиль "Строгий" к абзацу без использования Selection?
Название: Re: Word VBA Макросы. Не применяется стиль к Paragraph.
Отправлено: Администратор от 26 апреля 2022, 07:23
В программе Word есть такие виды стилей:
Стиль абзаца
Стиль знака
Связанный (абзац и знак) стиль
Стиль таблицы
Стиль списка

Стиль "Строгий" относится к типу "Стиль знака". Вы пытаетесь применить стиль к целому абзацу, Ворд считает, что это неправильно.

Можно использовать обходной способ: примените стиль не к объекту "Paragraph", а к объекту "Range":
Sub Макрос()
    ActiveDocument.Paragraphs(1).Range.Style = ActiveDocument.Styles("Строгий")
End Sub