2015-02-10 44 views
0

我很難弄清楚如何使用特定字體替換Word文檔中的文本。我可以找到並替換文本,但它不使用我指定的字體。使用VB.NET替換具有特定字體的Word文檔文本

Dim objWord As Word.Application 
Dim objDoc As Word.Document 

objWord = New Word.Application 
objWord.Visible = True 
objDoc = objWord.Documents.Open("C:\Users\John.USEI\Desktop\ME551i2.doc") 
objWord.Visible = True 

'objWord.ActiveWindow.Selection.Font.Name = "WASP LOGMARS MC" 
'objWord.ActiveWindow.Selection.Font.Size = "20" 

objDoc.Content.Find.Execute(FindText:="MAM", ReplaceWith:="L412F05050", Replace:=Word.WdReplace.wdReplaceAll) 
While objDoc.Content.Find.Execute(FindText:=" ", Wrap:=Word.WdFindWrap.wdFindContinue) 
    objWord.ActiveWindow.Selection.Font.Name = "WASP LOGMARS MC" 
    objWord.ActiveWindow.Selection.Font.Size = "20" 
    objDoc.Content.Find.Execute(FindText:=" ", ReplaceWith:=" ", Replace:=Word.WdReplace.wdReplaceAll, Wrap:=Word.WdFindWrap.wdFindContinue) 
End While 

我試過在While循環(當前註釋掉)之前設置字體,並在循環內試過。 (當前代碼)

是否可以指定要替換的字體?

回答

0

您可以設置替換字體在查找對象:

objWord.Selection.Find.ClearFormatting() 
objWord.Selection.Find.Replacement.ClearFormatting() 
objWord.Selection.Find.Replacement.Font.Color = Word.WdColor.wdColorRed 
objWord.Selection.Find.Replacement.Font.Size = 25 
With objWord.Selection.Find 
    .Text = "John" 
    .Replacement.Text = "J2" 
    .Forward = True 
    .Format = True 
    .MatchCase = False 
    .MatchWholeWord = False 
    .MatchWildcards = False 
    .MatchSoundsLike = False 
    .MatchAllWordForms = False 
End With 
objWord.Selection.Find.Execute(Replace:=Word.WdReplace.wdReplaceAll) 
相關問題