ここで問題です。インライン応答が開かれると、問題なく編集できます。次に、ワード エディターでスペル チェックを実行すると、メールの HMTLBody で編集できなくなります。つまり、次のようなことをすると、次のようになります。
email.HTMLBody = email.HTMLBody.Replace("cat", "dog");
メールの本文は変更されません。変更後に強調表示email
すると、HTMLBody には変更が表示されますが、メールには表示されません。
ここで、最初にすべての編集を行ってからスペルチェックを行うと、間違っているテキストはすべて調べられますが、実際の電子メール テキストは変更されません。ちなみに、これはメールの本文でのみ発生します。To:、CC:、および Subject: フィールドは、何が起こっても問題なく変更できます。また、インライン応答にのみ影響し、独自のインスペクターにポップアウトされる電子メールには影響しません。返信をインラインとして開始してポップすると、問題は発生しません。
これは私がスペルチェックをしている方法です
Outlook.Inspector insp = email.GetInspector;
Word.Document Doc = insp.WordEditor;
if(!doc.SpellingChecked)
{
doc.CheckSpelling();
email.Save();
}
情報が必要な場合はお知らせください。
編集
そこで、@Dmitry が言ったことをもう少し考えて、私は戻っ.WordEditor
てメールからの使用に取り組むことにしました。これが結果です。
ワード エディターを使用してメール本文をかなりうまく編集できましたが、メール全体を再フォーマットし (返信/転送の区切り線を削除)、返信の色 (私にとっては青) でメール全体に色を付けてしまいます。.Range
次のように、ドキュメントの開始値と終了値を使用して、これを修正できました。
Word.Document emailEditor = GetCurrentMailWordEditor(); // A function I use to retrieve the correct editor
Word.Range rng = emailEditor.Range(startIndex, endIndex); // To get only the specific part I want to change
rng.Text = rng.Text.Replace("cat", "dog");
それ以外の
Word.Document emailEditor = GetCurrentMailWordEditor();
Word.Range rng = emailEditor.Range();
rng.Text = rng.Text.Replace("cat", "dog");
.WordEditor
次のように正しいソースから取得することで修正できたスペルチェック。
Word.Document doc;
if(this.Application.ActiveInspector() != null)
{
OutlookInspector insp = this.Application.GetActiveInspector();
doc = insp.WordEditor;
}
else
{
Outlook.Explorer exp = this.Applicaotn.GetActiveExplorer();
doc = exp.ActiveInlineResponseWordEditor;
}
if(!doc.SpellingChecked)
{
doc.CheckSpelling();
email.Save();
}