C# で word 2003 .DOT ドキュメントに対して MailMerge を実行する小さなライブラリを作成中です。次のように、すべてのドキュメント本文フィールドを取得して置き換えることができます。
foreach (Field mergeField in document.Fields)
{
if (mergeField.Type == WdFieldType.wdFieldMergeField)
{
string fieldText = mergeField.Code.Text;
string fieldName = Extensions.GetFieldName(fieldText);
if (values.ContainsKey(fieldName))
{
mergeField.Select();
application.Selection.TypeText(values[fieldName]);
}
}
}
ただし、これはドキュメントからヘッダー フィールドまたはフッター フィールドを取得しません。
私はこれを試しました:
subscriptionDocument.Sections[1].Headers[WdHeaderFooterIndex.wdHeaderFooterPrimary].Range.Fields.Count;
ヘッダー フィールドをクエリしますが、フィールドが物理的に存在するにもかかわらず、「0」のカウントが返されます。
ヘッダー フィールドとフッター フィールドにも目的の影響を与える方法はありますか?