首先說明的是,我不懂VSTO,而是直接引用的 MS Word 的 COM組件,但是對象模型好像跟VSTO差不多,嘿嘿。
首先看一下代碼:
object oMissing = Type.Missing; object oFalse = false; object oTrue = true; Application app = new ApplicationClass(); app.Visible = false; object oFilename = "test.doc"; // 打開一個WORD文檔 Document doc = app. Documents.Open(ref oFilename, ref oMissing, ref oFalse, ref oFalse, ref oMissing,ref oMissing,ref oMissing,ref oMissing,ref oMissing,ref oMissing,ref oMissing,ref oMissing,ref oMissing,ref oMissing,ref oMissing,ref oMissing); // 此屬性為True則表示搜索文檔格式或按文檔格式搜索 doc.Content.Find.Format = true; doc.Content.Find.Forward = true; // 此屬性表示我要搜索紅色的文字 doc.Content.Find.Font.Color = WdColor.wdColorRed; doc.Content.Find.Execute(ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oTrue, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing); System.Diagnostics.Trace.WriteLine(doc.Content.Find.Text); // 將搜索到的文字顯示出來 doc.Content.Find.ClearFormatting(); doc.Save(); doc.Close(ref oMissing, ref oMissing, ref oMissing); app.Quit(ref oMissing, ref oMissing, ref oMissing);
關鍵的就app.ActiveDocument.Content.Find.Font屬性,它可以設置要搜索的各種字體格式,然後就是app.ActiveDocument.Content.Find.Format = true ;
如果設置為True,才可以應用格式搜索。
但是奇怪的是,有時候我設置app.ActiveDocument.Content.Find.Format屬性的時候總是設置不了,
執行了下列代碼
app.ActiveDocument.Content.Find.Format = true ;
但是app.ActiveDocument.Content.Find.Format依然為False,不知道是為什麼,希望有經驗的高手能為我解答,謝謝!