1

Word 2010 DOTX テンプレートにいくつかのフィールドを追加する必要があります。これらのフィールドには、Word 相互運用サービスを使用して C# プログラムでドキュメントを開くと、「実行時」にカスタム コンテンツが自動的に入力されます。QuickParts リボン メニュー オプションを使用してテンプレートに追加するときに、"Ask" または "Fill-In" フ​​ィールドに一意の名前を割り当てる方法がわかりません。

C# プログラムで document.Fields コレクションを反復処理する場合、参照しているフィールドを認識して、正しい値を割り当てることができるようにする必要があります。

以前のバージョンの Word と Word 2010 の間で状況が変わったようです。したがって、回答する場合は、回答が 2010 に当てはまることを確認してください。以前のバージョンで機能していたものが 2010 でも機能するとは思わないでください。 Word で作業していて、2010 年のリボン メニューを理解しようとしているときは、ぼんやりしているように感じます。

4

1 に答える 1

0

フィールドには、他のフィールド インスタンス (Fields コレクション内のインデックス以外) と一意に区別するための組み込みの方法が必ずしも組み込まれているわけではないという点で、あなたは正しいです。ただし、 Field.Type プロパティを使用して、 wdFieldAsk または wdFieldFillIn をテストできます。これが ID を取得するのに十分でない場合は、Field.Code から独自の一意の識別子を解析する必要があります。たとえば、FILLIN フィールドを次のように作成できます。

{ FILLIN "Hello, World!" MYIDENTIFER }

document.Fields コレクションを反復処理すると、文字列内にある識別子のテストが行​​われます。編集: 例:

For Each fld In ActiveDocument.Fields
    If InStr("CARMODEL", fld.Code) <> 0 Then
        ''this is the carmodel field
    End If
Next

別の方法 - 「^d MYIDENTIFIER」の Find.Text を使用して特定のフィールドを探します (^d は「フィールド コード」の式です)。

これが役立つかどうかを教えてください。ギャップがある場合は、質問を拡大してください。

于 2012-09-27T03:00:19.463 に答える