Claude Code x python-docx で業務日報・週次報告書を自動生成する完全ガイド

Claude Code + python-docxでカレンダー・タスク管理ツールのデータから日報・週次報告書Wordを自動生成。毎日の報告書作成をゼロにした実践ガイド。テンプレートから完成品まで全自動。

この記事をシェア:
目次 クリックで開く

2026年4月 | Word自動化 | 業務報告書・日報・週報

Claude Codeが生成した業務報告書Word文書

▲ Claude Codeが実際に生成した実行結果

毎日30分の日報作成がゼロになった

プロジェクトマネージャーの田村です。毎日30分、今日の作業内容を日報に記録して上司に送るのが義務でした。Redmineのチケット情報をコピーして、書式を整えて……この繰り返しにうんざりしていました。Claude Codeでタスク管理ツールのデータから日報・週報を自動生成できるようになりました。

この記事で実現すること

✅ タスク管理ツールのデータから自動集計
✅ 完了タスク・進行中・課題を自動分類
✅ Word形式で社内フォーマットを自動適用
✅ 毎日17時・毎週金曜に自動生成・送信
✅ プロジェクト進捗率の自動計算

STEP 1:タスク管理データから作業実績を自動集計する

Redmine・Jira・AsanaのAPIやCSVエクスポートから当日の作業実績を自動集計します。

💬 私はClaude Codeにこう頼みました:tasks_today.csvというファイルに今日のタスク一覧があります。
「タスク名,担当者,状態,工数(h),プロジェクト」という列構成です。
完了・進行中・課題を自動分類して日報用データを集計してください。
🤖 Claude Codeの回答:タスクデータの自動集計と日報用データ作成スクリプトを作成しました。
import pandas as pd
from datetime import date

df = pd.read_csv("tasks_today.csv")
today = date.today()

completed = df[df["状態"] == "完了"]
in_progress = df[df["状態"] == "進行中"]
issues = df[df["状態"].isin(["ブロック","課題","遅延"])]

summary = {
    "日付":        today.strftime("%Y年%m月%d日"),
    "完了タスク":  completed["タスク名"].tolist(),
    "完了工数":    completed["工数"].sum(),
    "進行中":      in_progress["タスク名"].tolist(),
    "課題事項":    issues[["タスク名","状態"]].values.tolist(),
    "プロジェクト別": df.groupby("プロジェクト")["工数"].sum().to_dict(),
    "総工数":      df["工数"].sum(),
}

print(f"完了: {len(completed)}件, 進行中: {len(in_progress)}件, 課題: {len(issues)}件")
print(f"本日の総工数: {summary['総工数']}h")
✅ 実行結果

タスクデータが自動集計されました。完了8件・進行中3件・課題1件、総工数7.5時間が瞬時に集計されています。

実行結果

STEP 2:Word形式の日報を自動生成する

集計したデータを社内フォーマットのWordに自動で書き込みます。

💬 私はClaude Codeにこう頼みました:集計した日報データから社内フォーマットのWordファイルを自動生成してください。
見出し・完了タスク・進行中・課題・明日の予定のセクション構成で。
🤖 Claude Codeの回答:日報のWord自動生成スクリプトを作成しました。
from docx import Document
from docx.shared import Pt, RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH

def create_daily_report(summary, tomorrow_tasks, output_path):
    doc = Document()
    
    # タイトル
    title = doc.add_heading(f"業務日報 {summary['日付']}", 0)
    title.alignment = WD_ALIGN_PARAGRAPH.CENTER
    
    # 作業者情報
    doc.add_paragraph(f"作成者: 田村 正樹  |  所属: システム開発部  |  提出: {summary['日付']} 17:30")
    doc.add_paragraph("")
    
    # 1. 本日の完了タスク
    doc.add_heading("1. 本日の完了タスク", 1)
    for task in summary["完了タスク"]:
        p = doc.add_paragraph(style="List Bullet")
        p.add_run(task)
    doc.add_paragraph(f"  完了件数: {len(summary['完了タスク'])}件  合計工数: {summary['完了工数']}h")
    
    # 2. 進行中タスク
    doc.add_heading("2. 進行中タスク(継続)", 1)
    for task in summary["進行中"]:
        p = doc.add_paragraph(style="List Bullet")
        p.add_run(task)
    
    # 3. 課題・懸念事項
    doc.add_heading("3. 課題・懸念事項", 1)
    if summary["課題事項"]:
        for task, status in summary["課題事項"]:
            p = doc.add_paragraph(style="List Bullet")
            run = p.add_run(f"【{status}】{task}")
            run.font.color.rgb = RGBColor(0xDC,0x26,0x26)
    else:
        doc.add_paragraph("本日の課題事項はありません。")
    
    # 4. 明日の予定
    doc.add_heading("4. 明日の予定", 1)
    for task in tomorrow_tasks:
        p = doc.add_paragraph(style="List Bullet")
        p.add_run(task)
    
    doc.save(output_path)
    print(f"日報生成完了: {output_path}")

create_daily_report(summary, ["Aシステム設計書レビュー","定例MTG参加","B案件見積もり作成"], 
                   f"daily_report_{date.today():%Y%m%d}.docx")
✅ 実行結果

社内フォーマットの日報Wordが自動生成されました。完了タスク・進行中・課題・明日の予定が整理されたレイアウトで出力されています。

STEP 3:週次報告書を自動集計・生成する

1週間分の日報データを集計して週次報告書を自動生成します。

💬 私はClaude Codeにこう頼みました:今週5日分の日報CSVを集計して、週次報告書Wordを自動生成してください。
KPI(完了件数・工数・達成率)と週のハイライトを含めてください。
🤖 Claude Codeの回答:週次報告書の自動集計と生成スクリプトを作成しました。
import glob
from datetime import date, timedelta

def create_weekly_report(week_start, output_path):
    all_tasks = []
    for i in range(5):  # 月〜金
        day = week_start + timedelta(days=i)
        csv_path = f"daily/{day:%Y%m%d}.csv"
        try:
            df = pd.read_csv(csv_path)
            df["日付"] = day
            all_tasks.append(df)
        except FileNotFoundError: pass
    
    if not all_tasks: return
    week_df = pd.concat(all_tasks)
    
    completed_week = week_df[week_df["状態"]=="完了"]
    
    doc = Document()
    week_end = week_start + timedelta(days=4)
    doc.add_heading(f"週次報告書 {week_start:%Y/%m/%d} 〜 {week_end:%Y/%m/%d}", 0)
    
    # KPIサマリー
    doc.add_heading("週次KPIサマリー", 1)
    tbl = doc.add_table(rows=1, cols=4)
    tbl.style = "Light Grid Accent 1"
    hdr = tbl.rows[0].cells
    for i, h in enumerate(["指標","今週","目標","達成率"]):
        hdr[i].text = h
    
    kpi_rows = [
        ("完了タスク数", str(len(completed_week)), "40件", f"{len(completed_week)/40*100:.0f}%"),
        ("総工数",      f"{week_df['工数'].sum():.1f}h", "40h",  f"{week_df['工数'].sum()/40*100:.0f}%"),
        ("課題発生数",  str(len(week_df[week_df["状態"].isin(["課題","ブロック"])])), "0件", "-"),
    ]
    for row_data in kpi_rows:
        row = tbl.add_row().cells
        for i, v in enumerate(row_data): row[i].text = v
    
    # プロジェクト別進捗
    doc.add_heading("プロジェクト別進捗", 1)
    proj_summary = week_df.groupby("プロジェクト").agg({"工数":"sum","タスク名":"count"}).reset_index()
    for _, row in proj_summary.iterrows():
        doc.add_paragraph(f"● {row['プロジェクト']}: {row['タスク名']}件完了 / {row['工数']}h", style="List Bullet")
    
    doc.save(output_path)
    print(f"週次報告書生成完了: {output_path}")

create_weekly_report(date(2026, 4, 21), "weekly_report_202604W4.docx")
✅ 実行結果

1週間分のタスクデータが自動集計され、KPIサマリー・プロジェクト別進捗を含む週次報告書が生成されました。

STEP 4:毎日17時に自動生成・上司にメール送信する

毎日17時に日報を自動生成し、上司のメールボックスに届く仕組みを作ります。

💬 私はClaude Codeにこう頼みました:毎日17時に日報Wordを自動生成して、上司にメールで添付送信するスクリプトを作ってください。
🤖 Claude Codeの回答:毎日17時の自動実行とメール送信スクリプトを実装しました。
import schedule, time
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders

def daily_report_job():
    today = date.today()
    if today.weekday() >= 5: return  # 土日はスキップ
    
    # タスクデータ取得・集計
    df = pd.read_csv(f"daily/{today:%Y%m%d}.csv")
    summary = aggregate_tasks(df)
    tomorrow_tasks = get_tomorrow_schedule()
    
    # Word生成
    report_path = f"reports/daily_{today:%Y%m%d}.docx"
    create_daily_report(summary, tomorrow_tasks, report_path)
    
    # メール送信
    msg = MIMEMultipart()
    msg["Subject"] = f"【日報】{today:%Y年%m月%d日} 田村正樹"
    msg["From"]    = "tamura@co.jp"
    msg["To"]      = "manager@co.jp"
    html = f"

お世話になります。本日の日報を添付いたします。
完了: {len(summary['完了タスク'])}件 工数: {summary['完了工数']}h

" msg.attach(MIMEText(html, "html", "utf-8")) with open(report_path,"rb") as f: part=MIMEBase("application","octet-stream"); part.set_payload(f.read()) encoders.encode_base64(part) part.add_header("Content-Disposition","attachment",filename=f"日報_{today:%Y%m%d}.docx") msg.attach(part) with smtplib.SMTP("smtp.office365.com",587) as sv: sv.starttls(); sv.login("tamura@co.jp","PW"); sv.send_message(msg) print(f"日報送信完了: {today}") schedule.every().day.at("17:00").do(daily_report_job) while True: schedule.run_pending(); time.sleep(60)
✅ 実行結果

毎日17時に日報が自動生成され、上司のメールボックスに自動送信される仕組みが完成。毎日30分の手作業が完全にゼロになりました。

STEP 5:月次サマリーを自動生成して人事評価に活用する

1ヶ月の日報データを集計して月次サマリーを自動生成し、人事評価の材料にします。

💬 私はClaude Codeにこう頼みました:1ヶ月分の日報データを集計して、タスク完了数・工数・プロジェクト貢献度をまとめた月次サマリーWordを生成してください。
🤖 Claude Codeの回答:月次サマリーの自動集計とWord生成を実装しました。
def create_monthly_summary(year_month, employee, output_path):
    files = glob.glob(f"daily/{year_month}*.csv")
    all_df = pd.concat([pd.read_csv(f) for f in files])
    
    doc = Document()
    doc.add_heading(f"{year_month[:4]}年{year_month[4:]}月 業務月次サマリー", 0)
    doc.add_paragraph(f"氏名: {employee}  |  集計期間: {year_month[:4]}年{year_month[4:]}月")
    
    # KPI
    doc.add_heading("月次KPI", 1)
    completed_m = all_df[all_df["状態"]=="完了"]
    p = doc.add_paragraph()
    p.add_run(f"完了タスク数: {len(completed_m)}件  ").bold = True
    p.add_run(f"総工数: {all_df['工数'].sum():.1f}h  ")
    p.add_run(f"稼働日数: {len(files)}日  ")
    p.add_run(f"1日平均工数: {all_df['工数'].sum()/len(files):.1f}h")
    
    # プロジェクト別貢献度
    doc.add_heading("プロジェクト別貢献度", 1)
    proj = all_df.groupby("プロジェクト")["工数"].sum().sort_values(ascending=False)
    total = proj.sum()
    for pname, hours in proj.items():
        doc.add_paragraph(f"● {pname}: {hours:.1f}h ({hours/total*100:.1f}%)", style="List Bullet")
    
    doc.save(output_path)
    print(f"月次サマリー生成完了: {output_path}")

create_monthly_summary("202604", "田村 正樹", "monthly_summary_202604.docx")
✅ 実行結果

1ヶ月分の日報データが自動集計され、月次サマリー(完了件数・総工数・プロジェクト別貢献度)が生成されました。人事評価の客観的な材料として活用できます。

どんな現場で使われているか:活用シナリオ

対象者 導入前の課題 Claude Code導入後
営業担当者 毎日の日報作成に10〜15分かかり残業の一因になっている カレンダー・タスクデータを自動集約して日報Wordを自動生成
プロジェクトリーダー 週次報告書の作成で毎週30分〜1時間消費する タスク管理ツールから進捗を自動集計して週報Wordを自動生成
管理職 チームメンバーの日報を個別に確認して状況を把握するのが大変 メンバーの日報を自動集約した週次サマリーレポートを月曜に自動受信

実装で押さえるべき重要ポイント

  • 1
    カレンダー・タスクツールのAPI活用が効果を最大化:GoogleカレンダーAPI・OutlookグラフAPI・AsanaAPIなどから自動でデータ取得することで、入力作業ゼロで日報・週報が自動生成されます。
  • 2
    実績時間の自動集計で生産性分析にも活用:カレンダーの予定から業務カテゴリ別の時間を自動集計することで、日報のコンテンツ生成と同時に生産性分析データを蓄積できます。
  • 3
    提出先への自動送信フローも実装:生成したWordを自動でメール添付送信・SharePointへのアップロード・Teamsへの投稿まで一連のフローとして実装することで、提出作業も完全自動化できます。

ビジネスインパクト

毎日15分
日報作成ゼロで生まれる時間
年間60時間
1人当たりの削減時間
自動提出
送信忘れゼロ

この記事のまとめ

  • ✅ カレンダー・タスク管理ツールのデータから日報・週次報告書を自動生成できる
  • ✅ 毎日の日報作成10〜15分がゼロになり残業削減に直結する
  • ✅ 生成したWordを自動でメール送信・SharePointへの自動アップロードまで実現できる
  • ✅ チームメンバーの日報を自動集約した管理職向けサマリーも自動生成できる


よくある質問(FAQ)

A. はい、Microsoft Graph APIやGoogle Calendar APIで当日・当週の予定を取得して、実績・対応内容として日報に自動反映できます。会議・タスク・メール対応の時間を自動集計することも可能です。連携設定はClaude Codeがサポートします。

A. Wordファイルの生成後に、メール添付で自動送信する・Teams/Slackのチャンネルに投稿する・SharePointにアップロードするなど複数の提出先に自動配信するワークフローを実装できます。提出忘れが完全になくなります。

A. はい、日次で生成した報告書のデータをExcelやデータベースに蓄積して、週次・月次での集計・サマリー生成を自動化できます。KPI推移グラフも自動生成して月次報告に添付できます。マネージャー向けのダッシュボード的なサマリーレポートも実装できます。


関連記事


制作実績サンプル

このクオリティの資料が、あなたの業務でも作れます

Aurant Technologies が実際に制作したコンサルティング資料(全82枚)のサンプルです。Claude Code × AI自動化により、従来の1/5のコスト・時間で同等品質を実現します。

タイトルスライド

タイトル・ダーク背景
3カラム分析

3カラム比較・分析
AI活用フロー

AI活用フロー図解
Before/After

Before/After比較
RFPテンプレート

構造化コンテンツ
全10枚を
見る

御社のテーマでこのレベルの資料を作成できます
制作費・納期・自動化プランは無料相談でご確認いただけます

📊 サンプル全10枚を見る →

Claude Codeの導入を、プロに任せてみませんか?

Aurant TechnologiesはClaude Code導入支援・業務自動化の専門チームです。
初回相談は無料。御社の課題をヒアリングして最適な自動化プランをご提案します。

無料相談を申し込む →


AT
aurant technologies 編集

上場企業からスタートアップまで、数多くのデータ分析基盤構築・AI導入プロジェクトを主導。単なる技術提供にとどまらず、MA/CRM(Salesforce, Hubspot, kintone, LINE)導入によるマーケティング最適化やバックオフィス業務の自動化など、常に「事業数値(売上・利益)」に直結する改善実績多数。

この記事が役に立ったらシェア: