---
title: "フィールドの更新 Python"
---


通常、Microsoft Word に挿入されたフィールドには、すでに最新の値が含まれています。たとえば、フィールドが数式またはページ番号である場合、そのフィールドには、ドキュメントの特定のバージョンで正しく計算された値が含まれます。ただし、2 つのドキュメントを結合したり、データを入力したりするなど、フィールドを含むドキュメントを生成または変更するアプリケーションがある場合は、ドキュメントを有効に使用するには、すべてのフィールドを更新する必要があるのが理想的です。

## フィールドを更新する方法

ドキュメントがロードされると、Aspose.Words は Microsoft Word の動作を模倣し、フィールドを自動的に更新するオプションがオフになります。この動作は次のように要約できます。

- ドキュメントを開いたり保存したりしても、フィールドはそのまま残ります
- 必要な場合は、ドキュメント内のすべてのフィールドを明示的に更新できます (目次の再構築など)。
- PDF または XPS に印刷/レンダリングすると、ヘッダー/フッターのページ番号に関連するフィールドが更新されます。
- Mail Merge を実行すると、すべてのフィールドが自動的に更新されます

### プログラムによるフィールドの更新

ドキュメント全体のフィールドを明示的に更新するには、[update_fields](https://reference.aspose.com/words/python-net/aspose.words/document/update_fields/) を呼び出すだけです。ドキュメントの一部に含まれるフィールドを更新するには、[Range](https://reference.aspose.com/words/python-net/aspose.words/range/) オブジェクトを取得し、[update_fields](https://reference.aspose.com/words/python-net/aspose.words/range/update_fields/) メソッドを呼び出します。 Aspose.Words では、[Node.range](https://reference.aspose.com/words/python-net/aspose.words/node/range/) プロパティを使用して、[Section](https://reference.aspose.com/words/python-net/aspose.words/section/)、[HeaderFooter](https://reference.aspose.com/words/python-net/aspose.words/headerfooter/)、[Paragraph](https://reference.aspose.com/words/python-net/aspose.words/paragraph/) などのドキュメント ツリー内の任意のノードの **Range** を取得できます。 [update](https://reference.aspose.com/words/python-net/aspose.words.fields/field/update/) メソッドを呼び出して、単一フィールドの結果を更新できます。

### レンダリング中のページ関連フィールドの自動更新

ドキュメントを PDF や XPS などの固定ページ形式に変換すると、Aspose.Words はドキュメントのヘッダー/フッターにあるページ レイアウト関連のフィールド `PAGE`、`PAGEREF` を自動的に更新します。この動作は、ドキュメントを印刷するときの Microsoft Word の動作を模倣します。

ドキュメント内の他のすべてのフィールドを更新する場合は、ドキュメントをレンダリングする前に [update_fields](https://reference.aspose.com/words/python-net/aspose.words/document/update_fields/) を呼び出す必要があります。

次のコード例は、ドキュメントをレンダリングする前にすべてのフィールドを更新する方法を示しています。

{{< gist "aspose-words-gists" "e9d8f984dac599756ccb4a64b8c79768" "Examples-DocsExamples-DocsExamples-Programming with Documents-working_with_fields-UpdateDocFields.py" >}}

{{% alert color="primary" %}}

この例のサンプル ファイルは [Aspose.Words GitHub](https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET/blob/master/Examples/Data/Rendering.docx) からダウンロードできます。

{{% /alert %}}

### Mail Merge中の自動フィールド更新

mail merge を実行すると、ドキュメント内のすべてのフィールドが自動的に更新されます。これは、mail merge がフィールド更新のケースであるためです。プログラムは Mail Merge フィールドを検出し、その結果を更新する必要があります。これには、データ ソースから値を取得してフィールドに挿入することが含まれます。もちろん、ロジックはさらに複雑になります。たとえば、ドキュメント/mail merge 領域の終わりに達したが、マージするデータがまだある場合、領域を複製して新しいフィールドのセットを更新する必要があります。

## ダーティ属性を持つフィールドを更新する

w:dirty は、ドキュメントを開いたときに指定したフィールドのみを更新するフィールド レベルの属性です。これは、次回文書を開いたときにのみこのフィールドを更新するように MS Word に指示します。 [update_dirty_fields](https://reference.aspose.com/words/python-net/aspose.words.loading/loadoptions/update_dirty_fields/) プロパティを使用して、フィールドをダーティ属性で更新するかどうかを指定できます。 **update_dirty_fields** の値が `True` に設定されている場合、[Field.is_dirty](https://reference.aspose.com/words/python-net/aspose.words.fields/field/is_dirty/) または [FieldChar.is_dirty](https://reference.aspose.com/words/python-net/aspose.words.fields/fieldchar/is_dirty/) プロパティの `True` 値を持つすべてのフィールドがドキュメントのロード時に更新されます。

次のコード例は、ダーティ属性を持つフィールドを更新する方法を示しています。

{{< gist "aspose-words-gists" "e9d8f984dac599756ccb4a64b8c79768" "Examples-DocsExamples-DocsExamples-File Formats and Conversions-Load Options-working_with_load_options-UpdateDirtyFields.py" >}}

## 保存する前に LastSavedTime プロパティを更新する

[SaveOptions.update_last_saved_time_property](https://reference.aspose.com/words/python-net/aspose.words.saving/saveoptions/update_last_saved_time_property/) プロパティを使用して、ドキュメントを保存するときに、対応する組み込みドキュメント プロパティ [last_saved_time](https://reference.aspose.com/words/python-net/aspose.words.properties/builtindocumentproperties/last_saved_time/) を更新するかどうかを指定できます。

次のコード例は、このプロパティを更新する方法を示しています。

{{< gist "aspose-words-gists" "e9d8f984dac599756ccb4a64b8c79768" "Examples-DocsExamples-DocsExamples-File Formats and Conversions-Save Options-working_with_ooxml_save_options-UpdateLastSavedTimeProperty.py" >}}

