Claude Code × python-pptx で書式付きテーブル・表スライドを自動生成する

Claude Code×python-pptxでExcelデータからPowerPoint表スライドを自動生成する方法を解説。手作業30分→スクリプト実行10秒。色・フォント・罫線をコードで定義して毎回一定品質を実現。コード付き。

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

📅 2025年10月 | ⏱ 読了約8分 | 🏷 Claude Code・業務自動化

Excelデータをヘッダー色付き・交互行カラーのパワポ表に自動変換。達成率に応じたセル色変更も完全自動化する実践ガイド。

表形式スライドデモ
📊 Claude Code 生成デモ

表形式スライドデモ

↑ Claude Code が自動生成した実際の成果物サンプル。このクオリティが数分で完成します。

python-pptxで表・テーブルを自動生成する

📌 この記事で実現できること

  • PowerPoint表スライドの自動生成の完全自動化を実現するPythonスクリプトを5ステップで解説
  • 「Excelデータの手動コピペ→表更新」という課題を根本から解消する
  • Claude Codeへの自然言語指示だけでスクリプトを生成できる
  • 月・週・日単位の定期実行で完全無人化を実現する方法も紹介

以下のステップを順番に実行することで、今日から業務自動化を始められます。コピーして使えるコードと、Claude Codeへの指示文をセットで解説します。

PowerPoint の表作成は手動では時間がかかります。Claude Code + python-pptx なら、Excelデータを読み込んで書式付きテーブルスライドを自動生成できます。

ステップ1:書式付きテーブルを自動生成

💬 Claude Code へのプロンプトExcelの部門別実績データをpython-pptxで
ヘッダー色付き・交互行カラーのテーブルスライドとして自動生成して
from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.dml.color import RGBColor
import openpyxl

wb = openpyxl.load_workbook("部門実績.xlsx")
ws = wb.active
data = list(ws.iter_rows(values_only=True))

prs = Presentation()
prs.slide_width  = Inches(13.33)
prs.slide_height = Inches(7.5)
slide = prs.slides.add_slide(prs.slide_layouts[6])

NAVY  = RGBColor(0x1A, 0x37, 0x6B)
LGRAY = RGBColor(0xF2, 0xF2, 0xF2)
WHITE = RGBColor(0xFF, 0xFF, 0xFF)

rows = len(data)
cols = len(data[0]) if data else 0
table = slide.shapes.add_table(
    rows, cols, Inches(0.4), Inches(1.2), Inches(12.5), Inches(5.5)
).table

for r, row in enumerate(data):
    for c, val in enumerate(row):
        cell = table.cell(r, c)
        cell.text = str(val) if val is not None else ""
        tf = cell.text_frame.paragraphs[0]
        if tf.runs:
            tf.runs[0].font.size = Pt(10 if r > 0 else 11)
            tf.runs[0].font.bold = (r == 0)
            tf.runs[0].font.color.rgb = WHITE if r == 0 else RGBColor(0x1A,0x1A,0x2E)
        cell.fill.solid()
        if r == 0:
            cell.fill.fore_color.rgb = NAVY
        elif r % 2 == 0:
            cell.fill.fore_color.rgb = LGRAY
        else:
            cell.fill.fore_color.rgb = WHITE

prs.save("テーブルスライド.pptx")
print(f"テーブルスライド生成完了: {rows}行x{cols}列")
✅ 実行結果

ヘッダー紺色・交互グレーの書式付きテーブルを自動生成。手動作成(1時間)がスクリプト実行5秒に。

ステップ2:達成率でセル色を自動変更

from pptx.dml.color import RGBColor

RED_BG = RGBColor(0xFF, 0xE0, 0xE0)
GRN_BG = RGBColor(0xE0, 0xFF, 0xE8)

for r in range(1, rows):
    rate_cell = table.cell(r, 3)
    try:
        rate_str = rate_cell.text.replace("%","").strip()
        rate = float(rate_str)
        rate_cell.fill.solid()
        if rate >= 100:
            rate_cell.fill.fore_color.rgb = GRN_BG
        elif rate < 80:
            rate_cell.fill.fore_color.rgb = RED_BG
    except ValueError:
        pass

prs.save("テーブルスライド_カラー.pptx")
print("達成率カラーコーディング完了")
✅ 実行結果

達成率100%超=緑・80%未満=赤で自動カラーコーディング。視認性が大幅向上。

ステップ3:複数シートのデータを複数スライドに展開

import openpyxl
from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.dml.color import RGBColor

prs = Presentation()
prs.slide_width  = Inches(13.33)
prs.slide_height = Inches(7.5)
wb = openpyxl.load_workbook("全部門実績.xlsx")

for sheet in wb.worksheets:
    slide = prs.slides.add_slide(prs.slide_layouts[6])
    data = list(sheet.iter_rows(values_only=True))
    if not data:
        continue

    # タイトル
    tb = slide.shapes.add_textbox(Inches(0.4), Inches(0.2), Inches(12), Inches(0.6))
    tb.text_frame.text = f"{sheet.title} 実績テーブル"
    tb.text_frame.paragraphs[0].runs[0].font.size = Pt(20)
    tb.text_frame.paragraphs[0].runs[0].font.bold = True

    rows, cols = len(data), len(data[0])
    tbl = slide.shapes.add_table(rows, cols, Inches(0.4), Inches(1.0), Inches(12.5), Inches(5.8)).table
    NAVY = RGBColor(0x1A,0x37,0x6B)
    for r, row in enumerate(data):
        for c, val in enumerate(row):
            cell = tbl.cell(r, c)
            cell.text = str(val or "")
            cell.fill.solid()
            cell.fill.fore_color.rgb = NAVY if r == 0 else RGBColor(0xFF,0xFF,0xFF)

prs.save("全部門テーブルスライド.pptx")
print(f"{len(wb.worksheets)}シート分のスライドを生成")
✅ 実行結果

複数シートのデータを複数スライドに一括展開。月次会議用資料作成が完全自動化。

ステップ4:テーブルスライドにグラフを追加

from pptx.chart.data import ChartData
from pptx.enum.chart import XL_CHART_TYPE
from pptx.dml.color import RGBColor

cd = ChartData()
cd.categories = ["営業部","製品部","管理部","開発部"]
cd.add_series("達成率(%)", [112, 98, 87, 103])

chart = slide.shapes.add_chart(
    XL_CHART_TYPE.BAR_CLUSTERED,
    Inches(7.5), Inches(1.0), Inches(5.4), Inches(5.8), cd
).chart
chart.series[0].format.fill.solid()
chart.series[0].format.fill.fore_color.rgb = RGBColor(0xC4, 0x3E, 0x1C)

prs.save("テーブル+グラフスライド.pptx")
print("テーブル+グラフスライド完成")
✅ 実行結果

テーブル左・グラフ右の2カラムスライドを自動生成。視覚的なインパクトが向上。

ステップ5:スライドをPDF変換して配布

import subprocess

subprocess.run([
    "soffice", "--headless", "--convert-to", "pdf",
    "--outdir", ".", "テーブル+グラフスライド.pptx"
], check=True)
print("PDF変換完了 → 配布準備OK")
✅ 実行結果

PowerPointをPDFに自動変換。会議前の配布準備まで完全自動化。

📊 自動化で得られる効果
⏱ 作業時間(Before) テーブル転記・書式調整:30〜45分/回
⚡ 自動化後(After) スクリプト実行:30秒
作業時間 45分→30秒(99%削減)
転記ミス コピペミス→ゼロ
デザイン統一 色・フォント・罫線が自動統一

このシステムが解決する課題

データから高品質な表スライドを自動生成。この自動化が特に効果的な場面と、解決できる課題を整理します。

❌ よくある課題

  • Excelデータをコピーして表を手作りするのに毎回30分以上かかっている
  • データが更新されるたびに表を作り直す手間が発生している
  • 表のデザイン(色・フォント・罫線)が担当者によってバラバラになっている
  • 大量のデータから「見やすい表」を短時間で作る手法がわからない

実務での活用シナリオ

業種・部門 活用方法と効果
経営会議 月次KPIデータから役員向け比較表を自動生成。会議前夜の残業が解消。
営業管理 顧客別売上ランキング表を日次で自動更新。最新データを常に反映。
人事管理 部門別人員・コスト比較表を自動生成。毎月の集計作業が不要に。
品質管理 製品ロット別不良率比較表を自動出力。品質会議の資料作成時間をゼロに。
IR資料 四半期業績データから美しい比較表を自動生成。外注費を削減。

導入前後の効果比較

😫 Before ─ 従来の課題

ExcelからPowerPointへ手動でコピーペーストして表を作成。列幅・色・フォントを毎回手作業で調整するため1表あたり30分〜1時間かかっていた。データ更新のたびに全て作り直す必要があった。

✅ After ─ Claude Code で解決

Pythonがデータを読み込んで表スライドを自動生成。デザインはテンプレートとして定義済みなので毎回一定の品質を維持。データ更新時は再実行するだけで最新表が完成。

導入のポイントと注意事項

💡 スムーズに運用するためのコツ

  • 表のヘッダー行の色は会社のブランドカラーを6桁HEXで定義しておくと毎回一貫したデザインになる
  • 列幅は自動計算(テキスト長の最大値)にすると、データ量に関わらず見やすい表が生成される
  • python-pptxのTableオブジェクトはセル単位で書式設定できるため、特定の値を赤色表示するなどのハイライトも可能
  • 10行以上の表は複数スライドに分割する処理を加えると、印刷時のレイアウト崩れを防止できる

よくある質問(FAQ)

Q. Excelの表をそのままコピーすることはできますか?
A. xlrd・openpyxlでExcelデータを読み込んでpython-pptxで表を再構築する方法が確実です。書式(色・罫線)もPythonで定義し直すことで、よりきれいな表が生成できます。
Q. 100行以上の大きな表も生成できますか?
A. 技術的には可能ですが、スライド1枚に収めると可読性が下がります。「1ページ25行」などのルールを設けて自動的に複数ページに分割することを推奨します。
Q. 表のソートや絞り込みはできますか?
A. Pythonでデータを事前にpandasで処理(sort_values、queryなど)してから表生成すれば、任意の並び順・フィルタリングで表を作成できます。

まとめ

✅ Excelデータから書式付きテーブルスライドを自動生成
✅ 達成率に応じたセル色変更を自動化
✅ テーブル+グラフの2カラムスライドを一括作成

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

対象者 導入前の課題 Claude Code導入後
営業担当 Excelの比較表をパワポにコピペして体裁を整えるのに30分 Excelデータから比較表スライドを自動生成して数分で完了
コンサルタント 競合比較・機能マトリクスをパワポで毎回手動作成 比較軸データを渡すだけで競合比較表スライドを自動生成
マーケター 料金プラン比較ページをパワポとWebページで二重管理 一元管理のデータソースから比較表を自動生成して常に最新を維持

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

  • 1
    python-pptxのTableオブジェクトでネイティブ表を生成:add_table()でPowerPointネイティブの表を作成することで、PPT上で編集可能な表になります。画像として貼り付けるより確実にきれいな表が作れます。
  • 2
    列幅・行高さを自動計算して整える:テキストの長さに応じて列幅を動的に設定するロジックをClaude Codeに実装させることで、長いテキストが切れない適切なサイズの表を自動生成できます。
  • 3
    記号を条件付きで自動挿入:機能有無を表す記号(○×△等)をTrueとFalseの値から自動変換して表に挿入することで、データから意味のある比較表を自動生成できます。

ビジネスインパクト

30分→数分
比較表スライド作成時間
PPT編集可能
生成した表の操作性
常に最新
データ更新後の反映速度

この記事のまとめ

  • ✅ ExcelデータからPowerPointの比較表・機能マトリクス・料金表を自動生成できる
  • ✅ python-pptxのネイティブTableオブジェクトでPPT上で編集可能な表を作成できる
  • ✅ Excelコピペ→パワポ整形に30分かかっていた作業がゼロになる
  • ✅ データ更新のたびに最新の比較表スライドを自動再生成できる


よくある質問(FAQ)

A. セル結合はpython-pptxの通常のAPIでは対応が限定的ですが、XMLを直接操作することで実装できます。Claude Codeがlxmlを使った実装方法を生成します。ただし結合セルを含む表は後からの編集が複雑になるため、シンプルな構造を推奨します。

A. はい、pandasでExcelを読み込んでDataFrameとして取得し、そのデータをpython-pptxのTableオブジェクトに流し込む方式が最もシンプルです。Excelのデータを更新するだけで最新の比較表スライドが自動生成されます。

A. はい、セルの値に応じてフォントサイズ・太字・色・背景色を動的に設定するロジックをClaude Codeが実装します。最高評価を緑・最低評価を赤で自動ハイライトするような条件付き書式を表に適用できます。


関連記事


制作実績サンプル

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

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

タイトルスライド

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

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

AI活用フロー図解
Before/After

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

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

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

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

Claude Codeで業務自動化を始めよう

自然言語で指示するだけで、あなたの業務に合ったスクリプトを自動生成します。

無料で試してみる →

AT
aurant technologies 編集

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

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