用于格式化所选文本的Microsoft Word宏,例如所有实例的斜体

时间:2013-02-14 10:40:45

标签: vba ms-word word-vba

这是我的第一个问题, 我必须查看大量文档,并确保几个格式问题是正确的。这种问题的一个例子是确保所有句号“。”不是粗体,斜体,下划线等。另一个例子是确保所有“等”。用斜体字表示。

我列出了所需的格式问题。

我宁愿编写一个可以应用于每个文档的宏,而不是遍历每个文档并使用查找/替换功能。

我没有VBA经验。另一方面,我有一些C sharp和C编程经验。

非常感谢任何帮助。

顺便说一下,我不是要求一个完整的程序,而是一个我可以学习并继续学习的样本。

1 个答案:

答案 0 :(得分:0)

有几种选择:

1.在Word的Developer选项卡下,您可以点击" Record Macro"按钮,并使用ctrl + H快捷键录制宏时多次查找和替换。

2.设置了多个较小的宏(例如下面两个),点击"记录宏"并按照您想要的顺序运行它们。

Sub ItalicizeEct()
  Selection.Find.ClearFormatting
  Selection.Find.Replacement.ClearFormatting
  Selection.Find.Replacement.Font.Italic = True
  With Selection.Find
    .Text = "ect."
    .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
End Sub

Sub RemoveBoldPeriods()
  Dim PunctAllRng As Word.Range
  Set PunctAllRng = ActiveDocument.Range
  With PunctAllRng.Find
  .Format = True
  .Text = "."
  .Font.Bold = True
  .Replacement.Text = "."
  .Replacement.Font.Bold = False
  .Execute Replace:=wdReplaceAll
End With
End Sub

3.或者只需编写一个大宏,它将完成您需要的所有编辑过程