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?

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

В программе Word есть такие виды стилей:
Стиль абзаца
Стиль знака
Связанный (абзац и знак) стиль
Стиль таблицы
Стиль списка

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

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