2011-12-07 29 views
0

我有一個非常長的Word文檔,各個段落的字體相當多樣,並且很多(文本無襯線,字幕和標題襯線)。唯一的風格是一致和正確應用的標題和標題1至4.如何重新應用/更新所有段落的樣式/字體,但有些?

是否有一種方法可以將通用字體應用於所有段落但標題和標題不會丟失這些段落的粗體和斜體格式?我嘗試重新應用樣式,如http://www.elharo.com/blog/word/2005/12/28/word-tip-1-reapplying-styles/所述,但這隻適用於沒有任何斜體或粗體格式(或http鏈接)的段落。

我目前看到它的唯一方法是獲得一致性正常段落的字體和樣式是:a)通過對每個段落單獨應用樣式來刪除所有格式,然後遍歷每個段落並手動將粗體/斜體/ http格式應用於現在被覆蓋的那些部分。

有沒有其他的方法呢?必須有,對吧? VBA?別的東西?

編輯:

是類似以下可能的(僞代​​碼):

for i in all_paragraphs() 
    if i.style not in [header1, header2, header3, caption, ...] 
     i.font = my_new_font 

這樣任何標記應保持保留。

+0

SO是編程相關的問題,你想在腳本中做到這一點? –

+0

如果有一種方法來編程 - 那太棒了! – memyself

回答

2

這個任務可以很容易用VBA來完成,如你所說:

Sub changeStyles() 
     Dim p As Paragraph 

     For Each p In ActiveDocument.Paragraphs 
      If p.Range.Style <> "Caption" _ 
      And p.Range.Style <> "Heading 1" _ 
      And p.Range.Style <> "Heading 2" _ 
      And p.Range.Style <> "Heading 3" _ 
      And p.Range.Style <> "Heading 4" _ 
      Then 
       p.Range.Font.Name = "Arial" 
      End If 
     Next 
    End Sub 

此代碼將適用於你想在文檔中的每個段落的對象不具有的一個無論風格你提到的樣式。 p.Range.Font有許多您可能會覺得有用的成員,例如BoldItalic,如果您有需要更改這些屬性。

相關問題