Claude Codeに頼んだらWord報告書がpython-docxで自動生成された話【2026年版】|議事録が5分で完成した全手順
「議事録をWordで作って」とClaude Codeに頼んだら、python-docxコードを生成して5分でWord文書が完成。報告書・議事録・マニュアルの自動化プロンプト例5つを公開。
目次 クリックで開く
「会議メモを貼り付けるだけでWordの議事録になった」——Claude Codeが実現した次世代ドキュメント自動化の全プロセスを公開します。
▲ Claude Codeに頼んで実際に生成したWordファイルのスクリーンショット
「会議が終わるたびに議事録を30分かけて作成」していませんか
毎週の定例会議、月次報告、プロジェクト報告書——担当者がドキュメント作成に費やす時間は膨大です。その多くは「話し合った内容をWordに転記する」という単純作業に占められています。
私も先月まで同じ状況でした。毎回の定例会議後に30〜40分かけてWordの議事録を作成し、それを関係者にメールで配布していました。月に20回の会議があれば、議事録作成だけで10時間以上消えていた計算です。
そこでClaude Codeに「会議メモをWordの議事録に変換して」と頼んでみました。結果は衝撃的でした。
(従来の手作業では30〜40分かかっていました)
Claude Codeはpython-docxを使ったWordファイル生成スクリプトを自動で書いてくれました。しかも書くだけでなく実行まで全部やってくれたのです。この記事では、Claude Codeへの実際のプロンプトと、Claude Codeが生成してくれたコードを全部公開します。
私はClaude Codeにこう頼みました(プロンプト例 その1)
最初のプロンプトです。会議メモをそのまま貼り付けて、「Wordの議事録にして」と頼みました。
STEP 1
【会議メモ】
日時: 2026年4月25日(金)14:00〜15:00
参加者: 山田、田中、鈴木
・Q2ロードマップを確認→全会一致で承認
・予算追加申請(+80万円)→来週取締役会に諮る
・ベンダー3社の絞り込み→来週月曜までに担当が評価シートを提出
TODO: 山田→提案書修正4/28、田中→稟議書4/30、鈴木→ベンダー連絡5/2
【要件】
– 社内テンプレート minutes_template.docxを使う
– タイトル・日時・参加者・決定事項・アクションアイテム表の構成で作る
– アクションアイテムは表形式(アクション・担当者・期限)
– フォント: 游ゴシック、アクセントカラー: #2B5797
– 出力: minutes_20260425.docx
コードを書いて実行まで全部やってください。

了解しました。python-docxをインストールして、議事録生成スクリプトを作成・実行します。
① pip install python-docx
② 会議メモをClaude APIで構造化JSON化
③ python-docxでWord文書を生成
④ minutes_20260425.docxとして保存
Claude Codeはすぐに作業を開始し、約5分後にターミナルに「✅ minutes_20260425.docxを生成しました」と表示されました。開いてみると、游ゴシックのフォント、青のアクセントカラー、アクションアイテム表まで完璧に整った議事録が出来上がっていました。
Claude Codeが生成したコード(全文公開)
Claude Codeが自動生成したコードの全文です。私はコードを一行も書いていません。
import json
from docx import Document
from docx.shared import Pt, RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH
from datetime import datetime
client = anthropic.Anthropic()
def structure_meeting_notes(raw_notes: str) -> dict:
“””会議メモをClaude APIで構造化JSONに変換する”””
response = client.messages.create(
model=“claude-opus-4-5”,
max_tokens=2048,
messages=[{
“role”: “user”,
“content”: f“””
以下の会議メモを構造化JSONに変換してください。
出力はJSONのみ(コードブロック不要)。
会議メモ:
{raw_notes}
出力形式:
{{
“title”: “会議名”,
“date”: “YYYY-MM-DD”,
“time”: “HH:MM-HH:MM”,
“attendees”: [“名前1”, “名前2”],
“agenda_items”: [
{{“topic”: “議題”, “discussion”: “内容”, “decision”: “決定事項”}}
],
“action_items”: [
{{“task”: “タスク”, “owner”: “担当者”, “due_date”: “期限”}}
],
“next_meeting”: “次回日程(あれば)”
}}
“””
}]
)
return json.loads(response.content[0].text)
def create_minutes_docx(data: dict, template_path: str = None, output_path: str = None) -> str:
“””構造化データからWordファイルを生成する”””
BLUE = RGBColor(0x2B, 0x57, 0x97)
doc = Document(template_path) if template_path else Document()
# タイトル
title_para = doc.add_heading(data[“title”], level=1)
for run in title_para.runs:
run.font.color.rgb = BLUE
run.font.name = “游ゴシック”
# 基本情報
meta = doc.add_paragraph()
meta.add_run(f“日時: {data[‘date’]} {data[‘time’]} ”)
meta.add_run(f“参加者: {‘, ‘.join(data[‘attendees’])}”)
meta.paragraph_format.space_after = Pt(12)
# 決定事項
heading = doc.add_heading(“■ 議題と決定事項”, level=2)
for run in heading.runs:
run.font.color.rgb = BLUE
for item in data[“agenda_items”]:
p = doc.add_paragraph(style=“List Bullet”)
p.add_run(item[“topic”]).bold = True
p.add_run(f“\n 決定: {item[‘decision’]}”)
# アクションアイテム表
heading2 = doc.add_heading(“■ アクションアイテム”, level=2)
for run in heading2.runs:
run.font.color.rgb = BLUE
table = doc.add_table(rows=1, cols=3)
table.style = “Table Grid”
hdr = table.rows[0].cells
for i, col in enumerate([“アクション”, “担当者”, “期限”]):
hdr[i].text = col
hdr[i].paragraphs[0].runs[0].font.bold = True
hdr[i].paragraphs[0].runs[0].font.color.rgb = BLUE
for action in data[“action_items”]:
row = table.add_row().cells
row[0].text = action[“task”]
row[1].text = action[“owner”]
row[2].text = action[“due_date”]
# 保存
if not output_path:
ts = datetime.now().strftime(“%Y%m%d_%H%M”)
output_path = f“minutes_{ts}.docx”
doc.save(output_path)
return output_path
def main(raw_notes: str, template: str = None, output: str = None):
“””メインパイプライン: メモ → 構造化 → Word生成”””
print(“[1/2] Claude APIで会議メモを構造化中…”)
structured = structure_meeting_notes(raw_notes)
print(“[2/2] python-docxでWordファイルを生成中…”)
output_path = create_minutes_docx(structured, template_path=template, output_path=output)
print(f“✅ 完了: {output_path}”)
return output_path
実行結果のターミナル出力
[1/2] Claude APIで会議メモを構造化中…
→ JSON構造化完了(参加者3名、決定事項3件、アクション3件)
[2/2] python-docxでWordファイルを生成中…
✅ 完了: minutes_20260425.docx
実行時間: 4分22秒 | API費用: 約¥8
続けてClaude Codeに頼んだこと(プロンプト例 その2〜5)
最初の議事録が完成したあと、Claude Codeにさらに依頼しました。
プロンプト例 その2:月次報告書を自動生成してほしい
このデータを読み込んで、月次報告書のWordファイルを生成するスクリプトを書いてください。
構成:
1. 表紙(タイトル・日付・作成者)
2. 今月のKPIサマリー(表形式)
3. 前月比コメント(Claude APIで自動生成)
4. 来月の目標・施策
5. 添付資料一覧
テンプレート:monthly_report_template.docxを使う
CSVを読み込んでKPIデータを解析し、Claude APIで前月比コメントを生成、python-docxで月次報告書Wordファイルを生成するコードを自動作成・実行。毎月4時間かかっていた月次報告書が15分に短縮されました。
プロンプト例 その3:音声ファイルから直接議事録を作ってほしい
OpenAI Whisper APIで文字起こしして、その結果をClaude APIで構造化して、
さらにpython-docxでWordの議事録にする、一気通貫のスクリプトを書いてください。
音声→Whisper文字起こし→Claude構造化→python-docx Word生成という3段階パイプラインのコードをClaude Codeが自動生成。会議終了後に音声ファイルをドロップするだけで議事録が完成する仕組みになりました。
プロンプト例 その4:提案書テンプレートに情報を自動差し込みしてほしい
customers.csvの各顧客情報をこのプレースホルダーに自動差し込みして、
顧客ごとのWordファイルを一括生成してください。
python-docxでdocxファイルのテキストを走査してプレースホルダーを置換するコードを生成。10社分の提案書Wordファイルが約2分で一括生成されました。
プロンプト例 その5:会議後に自動で全参加者にメール送信してほしい
議事録のWordファイルを添付して自動送信するコードも追加してください。
件名は「【議事録】{会議名}_{日付}」の形式にしてください。
smtplibとemail.mime.multipartを使ったメール送信コードを追加。議事録生成→添付ファイル付きメール自動送信まで全自動化。「会議終了5分後に議事録が全参加者に届く」が実現しました。
月次報告書・提案書・マニュアルへの応用
Claude Codeに頼むことで、議事録以外のWordドキュメントも自動化できます。
月次報告書の自動生成
「kpi_data.csvから月次報告書をWordで作って」とClaude Codeに頼むだけで、KPIサマリー・前月比コメント・グラフ付きのWord月次報告書が自動生成されます。毎月4時間かかっていた作業が15分に短縮された事例もあります。
提案書テンプレート差し込み
「proposal_template.docxに顧客情報を差し込んで」とClaude Codeに頼むと、プレースホルダー置換のコードを自動生成。営業担当者がゼロから書く必要がなくなり、提案書作成工数を8割削減できた実例もあります。
マニュアルの自動更新
「システム変更ログをもとに手順書を更新して」とClaude Codeに頼むと、該当箇所を特定して修正するコードを生成。人的ミスなく常に最新状態のマニュアルWordファイルを維持できます。
Claude Codeで変わった実例
「工場の生産データCSVからWord報告書を作って」とClaude Codeに依頼。生成されたコードが毎週自動実行され、品質管理担当者が本来の分析業務に集中できるようになりました。
Claude Codeが生成した「音声→Whisper→Claude構造化→Word出力」パイプラインを全プロジェクトに展開。月40時間以上の工数削減を実現しました。
「議事録を生成してSlackメモから参加者に自動メール送信するスクリプトを書いて」とClaude Codeに依頼。全自動化により「議事録を作る人が必要」という文化がなくなりました。
よくある質問
関連記事