For Each с In ActiveDocument.Characters
If с.Style="Твой стиль" Then
с.Case = wdUpperCase
End If
Next
dr.MIG писал(а):Думаю, только перебирать посимвольно, проверяя стиль каждого символа и при совпадении выполнять определенные действия с этим символом.
- Код: Выделить всё
For Each с In ActiveDocument.Characters
If с.Style="Твой стиль" Then
с.Case = wdUpperCase
End If
Next
Sub UnbreakLastTwoWords()
'Ищем абзац нужного стиля
With ActiveDocument.Range.Find
.ClearFormatting: .Style = ActiveDocument.Styles("Глава")
.Text = ""
While .Execute 'Если нашли
'Ищем в этом абзаце последний пробел и заменяем его на неразрывный
With .Parent.Paragraphs(1).Range.Find
.Text = " ": .Forward = False
.Replacement.Text = ChrW(160)
.Execute Replace:= 1 'wdReplaceOne
End With
Wend
End With
End Sub
kibernetics писал(а):…Как можно впереди него, и после него добавить по новой строке?
Не мог бы показать пример перемещения?…
Sub TestFind()
'Ищем абзац нужного стиля
With ActiveDocument.Range.Find
.ClearFormatting: .Style = ActiveDocument.Styles("Глава")
.Text = "*^0013": .MatchWildCards = True
.Replacement.Text = "текст спереди " & "^&" & "текст сзади"
.Execute Replace: = 2 'wdReplaceAll
End With
End Sub
kibernetics писал(а):… как можно отключить перерисовку WORD'a во время применения всяких изменений тексту?
Application.ScreenUpdating = False
kibernetics писал(а):Для документа WORD присутствуют несколько стилей. Как можно всему тексту принадлежащему определённому стилю присвоить wdUpperCase, например?
ActiveDocument.Styles("Мой стиль").Font.AllCaps = True
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17