MS Word (Microsoft.Office.Interop.Word) および Microsoft.Office.Tools.Word で Office Interop を使用して、Word アドインで Word ドキュメントを変更しています。編集したい特定のテキストを含む Range があります。
Text オブジェクトを更新すると、Range の段落書式、特に Alignment と LeftIndent がリセットされます。Alignment と LeftIndent を一時変数に保存してリセットすることはできますが、これは理想的ではありません。ParagraphFormat のリセットを停止する方法はありますか?そうでない場合は、保存する必要があることを忘れている可能性のある他のプロパティがありますか?(段落の前後の間隔もリセットされることに気付きました...) 。
Microsoft.Office.Interop.Word.Range range = myObject.range;
var oldAlignment = range.ParagraphFormat.Alignment;
var oldLeftIndent = range.ParagraphFormat.LeftIndent;
range.Text = "new text";
range.ParagraphFormat.Alignment = oldAlignment;
range.ParagraphFormat.LeftIndent = oldLeftIndent;
編集: ParagraphFormat を一時変数として保存してから、それを使用して書式設定をリセットしようとしましたが、一時変数の書式設定も失われます。
oldParagraphFormat = range.ParagraphFormat;
range.Text = "new text";
range.ParagraphFormat = oldParagraphFormat; // oldParagraphFormat's objects are reset