フッターのテキストの一部を置き換えようとしています。Range.Find を使用してテキストを検索し、置換しています。デバッグ中にいくつかのブレークポイントを設定したので、変更前後のフッターの Range.Text を確認できます。それはその仕事をしているようです。[ローカル] ウィンドウで Rang.Text を確認すると、希望どおりにテキストが変更されています。問題は、ドキュメントが更新されないことです。
もう一度試してみると、Range.Text には変更が残っていますが、ドキュメントは更新されません。
ドキュメントの本文でこれを試してみましたが、うまく機能します。ここで何が欠けているのかわかりません。
保存したドキュメントで試しています。テキストを見つけて置き換えようとしたときに例外が発生しないように、フッターの保護を解除する必要があります。
私が見逃しているある種のセキュリティがあるかどうか、誰でも知っていますか?
これが私のコードです:
Word.Range docRange = currentDoc.Sections[1].Footers[Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range;
docRange.Find.ClearFormatting();
docRange.Find.Text = find;
docRange.Find.Replacement.ClearFormatting();
docRange.Find.Replacement.Text = replace;
object replaceAll = Word.WdReplace.WdReplaceAll;
docRange.Find.Execute(Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
ref replaceAll, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
さらにコードが必要な場合は、お知らせください。
編集:フッターを新しいドキュメントに移動して保存し、デバッガーで新しいドキュメントを開こうとしましたが、新しいドキュメントで問題なく動作するようです。ただし、元のドキュメントではまだ機能しません。