状況:
MS Word 文書の内容を扱っています。あるルールに従って、いくつかの単語の色を変えています。単語の色付けは、KeyPress イベントごとに発生します。
問題:
ユーザーが自分のルールを満たす単語を入力すると、入力した単語が色付きになり、色付きのテキストの直後に入力される将来のテキストに感染します。しかし、将来のテキストはルールを満たさないかもしれません。入力したばかりのテキストは色付けされるべきではありませんが、残念ながら色付けされたテキストの直後に配置され、そのスタイルに感染しているため、すでに色付けされています。
質問: 現在のカーソル位置に対応する Word.Range オブジェクトを取得し、フォントの色をニュートラルな既定の色に明示的に設定するにはどうすればよいですか? 私は試した
Word.Range r = app.Application.ActiveDocument.Range(
app.Application.ActiveDocument.Bookmarks[@"\Sel"].Range.Start,
app.Application.ActiveDocument.Bookmarks[@"\Sel"].Range.End);
r.Font.Color = WdColor.wdColorBlack;
と
Word.Range r = app.Application.ActiveDocument.Bookmarks[@"\Sel"].Range;
r.Font.Color = WdColor.wdColorBlack;