0

私は最近かなり多くのスレッドをブラウズしていて、これに出くわしました:

Word 2003 ドキュメントの MergeFields を置き換えてスタイルを維持する

これは古いスレッドですが、コードのロジックを理解しており、利用できると確信しているため、非常に有望に見えます。私が直面している唯一の問題は、このメソッドを宣言/使用できないように見えることですか?

Extensions.GetFieldName()

それを置き換えるアイデアもいただければ幸いです。:)

これが私が使用しようとしている実際のコードです

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]);
      }
   }
}
4

1 に答える 1

1

Extensions.GetFieldName組み込みのメソッドだとは本当に思いません。ユーザー定義のメソッドであり、相互運用下には存在しない可能性があります。

通常、フィールド名は次のように取得されます

Int32 endMerge = fieldText.IndexOf("\\");
Int32 fieldNameLength = fieldText.Length - endMerge;
String fieldName = fieldText.Substring(11, endMerge - 11);

このリンクを参照してください。フィールド名を取得する方法について非常に明確なコードがあります。

于 2012-11-02T05:53:06.823 に答える