如何使用Word文档中的VBA宏更改字体大小,不包括标题,子标题,TOC,标题

问题描述 投票:0回答:1

我的场景是我想改变内容体的字体大小,不包括标题,标题,子标题,TOC使用VBA宏,只是意味着使用宏更改字体实际内容体(正常样式应用于实际内容)

这是我的VBA代码:

Private Sub Document_Open()
   With ActiveDocument.Content.Find
        .ClearFormatting
        .Replacement.ClearFormatting
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        .Text = ""
        .Replacement.Text = ""
        .Execute Replace:=wdReplaceAll
        .ClearFormatting
        .Replacement.ClearFormatting
        .Font.Name = "Arial"
        .Replacement.Font.Name = "Calibri"
        .Execute Replace:=wdReplaceAll         
         .ClearFormatting
        .Replacement.ClearFormatting
        .Font.Name = "Times New Roman"
        .Replacement.Font.Name = "Calibri"
        .Execute Replace:=wdReplaceAll      
        .ClearFormatting
        .Replacement.ClearFormatting
        .Font.Size = 11
        .Replacement.Font.Size = 10
        .Execute Replace:=wdReplaceAll                
    End With
End Sub

使用此代码,整个文档字体大小正在改变,但字体名称仅使用上面的宏来改变实际内容。

是否可以使用VBA宏来更改文档的实际内容?

你能建议我怎样才能用VBA Macro做到这一点?

vba ms-word word-vba
1个回答
0
投票

如果您确定样式Normal应用于文档并且您想要使用Normal样式更改这些部件的字体属性,则可以在Find中指定样式,如下所示:

ActiveDocument.Content.Find.Style = ActiveDocument.Styles("Normal")

此外,.Replacement.Text = ""将从您的文档中删除所有匹配的文本。确保你使用.Replacement.Text = "^&"^&将替换找到的相同文本。

Sub FormatNormal()
    With ActiveDocument.Content.Find
        .ClearFormatting
        .Style = ActiveDocument.Styles("Normal")
        .Text = ""
        .Replacement.Text = "^&"
        .Replacement.Font.Size = 10
        .Replacement.Font.Name = "Calibri"
        .Replacement.ClearFormatting
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        .Execute Replace:=wdReplaceAll
    End With
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.