【问题标题】:Word 2003 - How to use a Macro to Change styles?Word 2003 - 如何使用宏更改样式?
【发布时间】:2020-07-05 01:34:31
【问题描述】:

是否可以创建 Word 2003 宏来更改文档某些部分的字体样式?

例如,假设我有一个文档,其中大部分文本为粗斜体和 12 磅字体。我想用带下划线的 14 点字体替换所有具有这些特征的文本。

我已经在 Google、StackOverflow 和 Microsoft's website 上进行了一些搜索,但我无法找到任何可以讨论的内容。

有什么帮助吗?

【问题讨论】:

    标签: vba ms-word


    【解决方案1】:

    是的,你会想要使用 .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
    

    【讨论】:

    • 非常好,谢谢!我将在今天晚些时候(最迟在星期一之前)尝试一下。感谢您的帮助!
    • @CrimsonX:只是想与您联系一下,看看您是否有机会进行测试。
    • 它在我的雷达上,但我希望我会在下周初使用宏。可能会晚于星期一,但我预计会在星期三之前。感谢您的帮助,抱歉耽搁了。
    【解决方案2】:

    与往常一样,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打开查找和替换,然后指定适当的查找格式和替换格式)

    【讨论】:

    • 我很高兴宏能够以编程方式访问 replacement.text 命令,感谢您的帮助!
    猜你喜欢
    • 2010-11-03
    • 1970-01-01
    • 2010-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多