機能 イベント お役立ち お知らせ

Claude CodeでWord文書を自動生成する方法|python-docxで契約書・報告書のひな形を整える

Claude CodeでWord文書を自動生成する方法|python-docxで契約書・報告書のひな形を整える

Word文書の作成で時間を取られるのは、中身を書く工程よりも、フォーマット崩れの修正やテンプレート管理の属人化です。契約書のひな形を更新したら別の箇所のスタイルが崩れた、報告書のヘッダーが担当者ごとに違う、といった問題は多くの現場で繰り返されています。

Claude Codeはpython-docxを使ったWord文書の生成・編集コードを自然言語で指示できるため、テンプレートへの差し込みからスタイル適用、目次・ヘッダー設定まで手作業なしで回せます。テンプレートの構造設計を先に固めれば、量産時のフォーマット崩れも大幅に減らせます。


本記事のポイント

  1. Claude Codeはpython-docxを使ったWord文書の生成・編集コードを自然言語で書けるため、テンプレートへの差し込み、スタイル適用、目次生成まで手作業なしで回せる。
  2. Word自動化の起点はテンプレートdocxの構造設計であり、スタイル名の統一とプレースホルダーの配置を先に決めると量産時の崩れが減る。
  3. 契約書、報告書、議事録のように定型構造がある文書ほどWord自動化の効果が高く、毎回のフォーマット調整工数を削減できる。

こんな場面で効果が出やすい

  • 契約書・報告書・議事録のひな形を毎回手で整えている
  • テンプレートの管理が属人化し、担当者ごとにフォーマットが違う
  • 差し込み印刷では対応しきれない条件分岐やスタイル制御がある

定型構造がある文書ほど、自動化の投資対効果が高くなります。

python-docxでWord文書を操作する基本

python-docxはPythonからdocx形式のWord文書を読み書きするライブラリです。段落、表、画像、ヘッダー・フッターなど主要な要素を操作でき、Wordをインストールしなくても動作します。Claude Codeはこのライブラリのコードを自然言語の指示から生成できるため、Pythonに詳しくなくても実用的なスクリプトを得られます。

比較軸Claude Code + python-docx手作業Wordの差し込み印刷
テンプレート管理docxファイルとスクリプトをrepoで管理共有フォルダに最新版を置く運用Word上でフィールド設定
条件分岐Pythonコードで自由に制御手で判断して書き分けIFフィールドで一部対応
スタイルの一貫性スタイル名を指定して適用担当者のWordスキルに依存テンプレート側のスタイルに依存
量産性CSVやJSONから一括生成1件ずつ手作業データソースから一括だが柔軟性に限界
学習コスト自然言語で指示できるため低い不要フィールド構文の理解が必要

差し込み印刷でも定型文書は作れますが、条件分岐が複雑になる、スタイルを動的に変えたい、複数テンプレートを切り替えたい、といった要件ではpython-docxの方が対応しやすくなります。

テンプレートの差し込み印刷的な使い方

python-docxでWord自動化を始めるとき、最初に決めるべきはテンプレートdocxの構造です。具体的には、プレースホルダーの記法とスタイル名の統一です。

たとえば、テンプレート内に {{company_name}}{{contract_date}} のようなプレースホルダーを入れておき、スクリプトで置換する方法がシンプルです。Claude Codeに「このテンプレートのプレースホルダーをCSVデータで差し替えるスクリプトを書いて」と指示すれば、実用的なコードが得られます。

project/
        ├── templates/
        │   ├── contract_template.docx
        │   ├── report_template.docx
        │   └── minutes_template.docx
        ├── data/
        │   └── input.csv
        ├── output/
        │   └── (生成されたdocxが入る)
        └── generate.py

ポイントは3つあります。

  • スタイル名を統一する:テンプレートdocx内の見出しは「Heading 1」「Heading 2」など標準スタイル名に揃えておく。独自スタイル名を使うと、python-docxからの指定が煩雑になる。
  • プレースホルダーはrun単位で壊れないように注意する:Wordは見た目が同じテキストでも内部で複数のrunに分割することがある。プレースホルダーを入力したらテンプレートを保存し直し、run分割を確認するのが安全。
  • 出力先を分けておく:生成物をoutputディレクトリに置き、テンプレートと混ぜない。

契約書・報告書・議事録への応用

定型構造がある文書ほどWord自動化の効果が高くなります。以下の3パターンは、多くの企業で繰り返し作成される文書です。

契約書

契約書は条項番号、当事者名、日付、金額など差し替え箇所が明確です。Claude Codeに「契約書テンプレートから当事者情報と金額をCSVで差し替え、条項番号を自動採番するスクリプトを書いて」と指示すると、プレースホルダー置換と段落番号の制御を含むコードが生成できます。NDA、業務委託、売買契約など類型ごとにテンプレートを分けておくと管理しやすくなります。

報告書

月次報告書や週次レポートでは、タイトル、期間、数値データ、所見の差し替えが中心です。表の行数が月ごとに変わる場合でも、python-docxで動的に行を追加できます。Claude Codeには「CSVの行数に応じてテーブル行を追加し、ヘッダースタイルを維持して」と伝えれば対応できます。

議事録

議事録は日時、参加者、議題、決定事項、次回アクションの構造がほぼ固定です。会議後にJSONやCSVで決定事項を入力し、docxに流し込む運用にすると、フォーマットのばらつきがなくなります。参加者リストが長い場合の改行処理なども、Claude Codeに指示すれば自動で対応できます。

ヘッダー・フッター・目次の自動設定

python-docxではヘッダーやフッターの操作も可能です。会社ロゴの挿入、ページ番号の設定、文書タイトルの表示などをスクリプトで制御できます。

設定項目python-docxでの対応注意点
ヘッダーsection.headerから段落・画像を追加セクションごとに異なるヘッダーを設定可能
フッターsection.footerから段落を追加ページ番号はXMLレベルの操作が必要な場合がある
目次TOCフィールドコードをXMLで挿入Wordで開いてフィールド更新が必要
ページ区切り段落にpage breakを追加セクション区切りとの使い分けに注意

目次の自動生成はpython-docx単体では完結しません。TOCフィールドコードを挿入することはできますが、実際のページ番号の反映にはWordで文書を開いてフィールドを更新する操作が必要です。Claude Codeに「目次フィールドを先頭ページに挿入するコードを書いて」と指示すると、XMLレベルの操作を含むスクリプトが得られます。

ヘッダーに会社ロゴを入れたい場合は、画像ファイルのパスを渡せばpython-docxで挿入できます。ロゴのサイズ指定もInchesやCmで制御可能です。

人が確認する境界はここ

Word自動化で全工程を無人にするのは現実的ではありません。以下の3点は人の目で確認する前提で運用を設計してください。

  • スタイルの見た目確認:python-docxはスタイル名を指定して適用しますが、そのスタイルがWord上でどう見えるかはテンプレート側の定義次第です。初回は必ずWordで開いて確認します。
  • 契約書の法的内容:条項の差し替えやテンプレート選択が正しいかは、法務担当が確認すべきです。自動化はフォーマット作業の省力化であり、内容の正当性を保証するものではありません。
  • 目次とページ番号:TOCフィールドを挿入しても、Wordで開いてフィールド更新するまでページ番号は反映されません。最終確認時にCtrl+Aで全選択してF9でフィールド更新する手順を運用に組み込みます。

よくある質問

既存Wordのスタイルを引き継げるか?

引き継げます。python-docxは既存のdocxファイルを読み込んで編集できるため、すでにスタイルが設定されたテンプレートをそのまま使えます。テンプレートに定義済みのスタイル名をスクリプト側で指定すれば、フォントや段落設定はテンプレートの定義が適用されます。

表や画像も挿入できるか?

どちらも対応しています。表はadd_tableで作成し、セルごとにテキストやスタイルを設定できます。画像はadd_pictureでファイルパスとサイズを指定して挿入します。グラフについてはpython-docx単体では作成できないため、matplotlibなどで画像として書き出してから挿入する方法が一般的です。

PDF変換も自動化できるか?

python-docx自体にはPDF変換機能はありませんが、LibreOfficeのコマンドライン変換やComtypes経由でのWord操作で対応できます。PDF出力の自動化については Claude CodeでPDFレポートを自動生成する方法 で詳しく整理しています。

docxとdocの違いは?

docxはOffice 2007以降のXMLベースの形式で、python-docxが対応しているのはこちらです。doc(旧形式)はバイナリ形式であり、python-docxでは読み書きできません。旧形式のdocファイルを扱う必要がある場合は、先にdocxへ変換してから処理する運用にします。

公開情報と責任主体

本記事はpython-docxの 公式ドキュメント およびAnthropicが公開している Claude Code公式ドキュメント をもとに、実務での活用方法を整理したものです。記載内容の正確性には注意を払っていますが、具体的な契約書・法的文書の運用に関しては、必ず法務担当または専門家の確認を経てください。記事の発行・編集・監修はファネルAi編集部が行っています。

関連ページと関連記事

Word文書の自動化は、提案書・PDF・スライドなど他の文書フォーマットの自動化と組み合わせると効果が広がります。

Word文書の自動生成を自社業務に組み込みたい場合

テンプレート設計からスクリプト化、運用フローの構築まで、Word自動化の導入を検討している場合はご相談ください。

相談前に整理しておくと早い3項目

  • 自動化したい文書の種類と月間の作成件数を書き出す
  • 現在のテンプレート管理方法(共有フォルダ、個人PC、SharePointなど)を確認する
  • 差し替えるデータの形式(CSV、Excel、基幹システムからの出力など)を整理する

この3点があると、テンプレート設計と運用フローの提案がスムーズになります。

AI開発・業務自動化の超速開発プランを見る

ブログ一覧へ戻る