我的方案是使用VBA宏更改内容体(不包括标题、标题、子标题、TOC )的字体大小,只需使用宏更改字体实际内容体(普通样式应用于实际内容)。
这是我的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宏怎么做吗?
发布于 2017-12-14 09:45:31
如果您确信样式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
https://stackoverflow.com/questions/47807851
复制相似问题