Word 2003 - Как использовать макрос для изменения стилей? - PullRequest
3 голосов
/ 11 марта 2010

Можно ли создать макрос Word 2003 для изменения стиля шрифта определенных сегментов документа?

Например, скажем, у меня есть документ, в котором большая часть текста выделена жирным курсивом и шрифтом 12 точек. Я хотел бы заменить весь текст с этими характеристиками подчеркнутым шрифтом 14 пунктов.

Я уже провел некоторые поиски в Google, StackOverflow и на веб-сайте Microsoft , но я не смог найти ничего, что обсуждало бы, возможно ли это вообще.

Любая помощь?

Ответы [ 2 ]

4 голосов
/ 11 марта 2010

Да, вы захотите использовать объект .Find и его дочерний .Replacement контент. Вы можете сделать это для Selection (ограниченный тираж), Range (абзацы, истории и т. Д.) Или для всего документа. Пример ниже для всего документа (ActiveDocument.Content).

Sub FindReplaceStyle()
    With ActiveDocument.Content.Find
        .ClearFormatting

        With .Font
            .Bold = True
            .Size = 14
            .Italic = True
        End With

        .Format = True

        With .Replacement
            .ClearFormatting
            With .Font
                .Bold = False
                .Italic = False
                .Underline = wdUnderlineSingle
                .Size = 12
            End With
        End With

        .Execute Forward:=True, Replace:=wdReplaceAll, _
            FindText:="", ReplaceWith:=""
    End With
End Sub
2 голосов
/ 11 марта 2010

Как всегда, макрозапись Word может быть очень полезна:

Selection.Find.ClearFormatting
With Selection.Find.Font
    .Size = 12
    .Bold = True
    .Italic = True
End With
Selection.Find.Replacement.ClearFormatting
With Selection.Find.Replacement.Font
    .Size = 14
    .Bold = False
    .Italic = False
    .Underline = wdUnderlineSingle
End With
With Selection.Find
    .Text = ""
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = True
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll

(Чтобы создать макрос, запустите программу записи макросов, нажмите Ctrl + H, чтобы открыть Поиск и замену, а затем укажите соответствующий формат поиска и формат замены)

...