MS-Word文書で複数の文字列を検索する必要があるとします。複数のキーワードをwordapiに渡したいのですが、apiがそのdocまたはdocxファイルをMS-wordで開き、提供されたms-wordファイルで見つかった場合はそれらの単語を強調表示する必要があります。ここで、ms-wordファイルのハイライトワードのサンプルコードを取得しましたが、見つけたルーチンでは複数のワードがハイライトされない場合があります。別の問題は、ファイルを強調表示して開くと正常に機能するのに、ms-wordを閉じると変更の保存を要求されることに気付きました。私は、このルーチンが、私が望まないハイライトを作成するためにドキュメントを変更することを理解しています。私はそのルーチンが強調表示されることを望みますが、ドキュメントファイルを変更しません....それを行う方法はありますか?ご案内ください。ありがとう
using Word = Microsoft.Office.Interop.Word;
private void btnFind_Click(object sender, EventArgs e)
{
object fileName = "audi.doc"; //The filepath goes here
string textToFind = "test1,test2,test3"; //The text to find goes here
Word.Application word = new Word.Application();
Word.Document doc = new Word.Document();
object missing = System.Type.Missing;
try
{
doc = word.Documents.Open(ref fileName, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing);
doc.Activate();
foreach (Word.Range docRange in doc.Words)
{
if(docRange.Text.Trim().Equals(textToFind,
StringComparison.CurrentCultureIgnoreCase))
{
docRange.HighlightColorIndex =
Microsoft.Office.Interop.Word.WdColorIndex.wdDarkYellow;
docRange.Font.ColorIndex =
Microsoft.Office.Interop.Word.WdColorIndex.wdWhite;
}
}
System.Diagnostics.Process.Start(fileName.ToString());
}
catch (Exception ex)
{
MessageBox.Show("Error : " + ex.Message);
}
}