用于更改Word文档中的字体的脚本

时间:2010-02-26 06:59:55

标签: c# vbscript ms-word word-vba

我有一个Word 2007文件,我想将Courier New字体的所有用法改为 Lucida Console字体。我需要一个脚本来查找以该字体格式化的所有单词并将其更改为新字体。

我该怎么做?

3 个答案:

答案 0 :(得分:2)

在Word中,您可以自己录制宏。然后你打开VBA编辑器,可选择删除一些无用的东西(通常选择太多或在文件中移动),你就得到了你的脚本。

编辑:在此处移动评论的内容,以回答作者的评论。

录制宏时,在查找和替换对话框中,单击“全部替换”。然后停止录音。生成的宏看起来像:

Selection.Find.ClearFormatting 
Selection.Find.Replacement.ClearFormatting 
With Selection.Find 
  .Text = "tarte au pomme" 
  .Replacement.Text = "t aux pruneaux" 
  .Wrap = wdFindContinue 
  .MatchCase = False 
  ' removed some stuff 
End With 
Selection.Find.Execute Replace:=wdReplaceAll 

由此,您可以创建VBScript宏。您需要在对象浏览器中获取wdReplaceAll和wdFindContinue的值。

答案 1 :(得分:1)

也许您可以使用OpenXML SDK 2.0?您应该能够更改样式(我相信包含字体信息的样式)。

答案 2 :(得分:1)

这将为你做到:

Sub ChangeFonts() 
Dim doc As Document 
Set doc = ActiveDocument
    For i = 1 To doc.Range.Characters.Count 
        If doc.Range.Characters(i).Font.Name = "Courier New" Then 
            doc.Range.Characters(i).Font.Name = "Lucida Console" 
        End If 
    Next 
End Sub