確かに、私はInteropライブラリの使用に非常に慣れていませんが、人々が常に提供しているように見えるアドバイスは、マクロを記録してvbaコードをチェックすることです。問題は、マクロが私が行っていることを正確に記録しないことです。クイックスタイルをクリックして現在の選択に適用します。
私のタスクは非常に単純です。段落にクイックスタイルを適用する必要があります(Microsoft.Office.Interop.Word.Paragraph)。ただし、 set_styleコマンドを使用すると、基本的な書式設定のみが適用され、段落は元のクイックスタイル選択(標準)を維持します。
Remouのアプローチを使用すると、それは私にとってはうまくいきましたが、それは私自身のコードに非常に似ているようで、私はそれを機能させることができません。少しずれているのはオブジェクトモデルの私の理解かもしれません。
public void AddParagraph(string text, string styleName = null)
{
Paragraph paragraph = _document.Content.Paragraphs.Add();
if (styleName != null)
{
paragraph.Range.set_Style(_document.Styles[styleName]);
}
paragraph.Range.Text = text;
paragraph.Range.InsertParagraphAfter();
}
次に、たとえばで呼び出しますAddParagraph("A title", "Heading 1");
が、上記のラッパーを使用してドキュメントを作成した結果、完全なスタイルは適用されず、フォント、色、サイズ、太字/斜体のみが適用されます。
自分で定義して名前を付けたスタイルで自分のファイルを使用してい.dotx
ますが、Remouからコードをコピーするだけで自分のテンプレートで機能するので、それが問題になるとは思わず、そのコードを使用すると、それぞれ独自のスタイルで複数の段落を追加します。
誰かが私のアプローチの何が悪いのか、または少なくともRemouによって提供された答えを私の要件に合わせるにはどうすればよいかを指摘できますか?:)