我有一個Word 2007文件,我想將Courier New字體的所有用法更改爲 Lucida控制檯字體。我需要一個腳本來查找以該字體格式化的所有單詞,並將其更改爲新字體。在Word文檔中更改字體的腳本
我該怎麼做?
我有一個Word 2007文件,我想將Courier New字體的所有用法更改爲 Lucida控制檯字體。我需要一個腳本來查找以該字體格式化的所有單詞,並將其更改爲新字體。在Word文檔中更改字體的腳本
我該怎麼做?
也許你可以使用OpenXML SDK 2.0?你應該能夠改變樣式(我相信這是包含字體信息的東西)。
在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的值。
好,但宏應該爲每個發現的快遞單詞和宏記錄器做到這一點,我必須繼續每一個字,並運行宏!可能是一個迭代過程... – xdevel2000 2010-02-26 14:32:59
設置'.Text =「」'和'.Replacement.Text =「」'。那麼這將超越所有其他選擇! – 2010-08-15 18:53:27
這會爲你做它:
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
+1不錯。 vba是活着的,並且很好 – 2010-07-22 17:53:20
爲什麼手動的時候你可以簡單地全部替換? – 2010-08-15 18:54:10
因爲遞歸比'Selection.Find'更快,並且在除了主體(頭部,頁腳等)之外的'Story'中起作用。 – 2010-08-15 22:02:36
只是想跟進,看看下面的回答你的問題。 – 2011-02-18 20:02:06