Microsoft のドキュメントの無限の迷路で説明されているように、フィールド コードをロックできます。たとえば、VBA で、本文に単一の日付フィールドがある場合、
{DATE \@ "M/d/yyyy h:mm:ss am/pm" \* MERGEFORMAT }
走れる
ActiveDocument.Fields(1).Locked = True
次に、ドキュメントに変更を加えて保存し、再度開くと、フィールド コードが更新されません。
C# Office Interop を使用した例:
Word.Application wordApp = new Word.Application();
Word.Document wordDoc = wordApp.ActiveDocument;
wordDoc.Fields.Locked = 1; //its apparently an int32 rather than a bool
DocumentOpen
イベントにコードを配置できます。イベントをサブスクライブするアドインがあると仮定しています。そうでない場合は、それ自体が戦いになる可能性があるため、明確にしてください。
編集: 私のテストでは、この方法でフィールドをロックするとすべてのフィールドがロックStoryRanges
されるため、ヘッダー、フッター、脚注、テキスト ボックスなどでフィールド インスタンスを取得する必要はありません。これは驚くべき扱いです。