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

Claude Codeでパワポを自動生成する方法|python-pptxでスライド作成を自動化する手順

Claude Codeでパワポを自動生成する方法|python-pptxでスライド作成を自動化する手順

営業提案書、社内報告資料、セミナー配布スライド。パワポ(PowerPoint)の作成は多くの組織で繰り返し発生する業務ですが、テンプレートの使い回しが属人化し、毎回ゼロに近いところから手作業で組み立てている現場は少なくありません。とくに顧客ごとにカスタマイズが必要な提案書は、1件あたり30分〜1時間以上かかることもあります。

この記事では、Claude Code と python-pptx を組み合わせて、パワポのスライド作成を自動化する手順を解説します。テンプレート読み込み、テキスト差し替え、営業提案書の一括生成まで、実務で使える流れを段階的に整理します。スライド生成AI全般の比較は 資料作成AI比較の記事 も参考にしてください。


本記事のポイント

  1. Claude Codeはpython-pptxのコードを生成・修正するのに向いており、スライドのテキスト差し替え、画像配置、書式設定まで自然言語で指示できる。
  2. パワポ自動化の成否はテンプレート設計で決まる。プレースホルダーの命名規則と変数マッピングを先に固定すると、量産時のズレが減る。
  3. 営業提案書のように顧客ごとにカスタマイズが必要な資料は、マスターテンプレート×顧客データCSVのバッチ処理で回すのが実務的。

この自動化が向いている場面

  • 営業提案書を顧客ごとにカスタマイズして毎週10件以上作成している
  • テンプレートはあるが、差し替え箇所が多く手作業で30分以上かかっている
  • セミナーや報告会のたびに同じ構成のスライドを微調整している
  • デザイナーが関与できず、非デザイナーがフォントや配置を毎回崩している

共通するのは「構成は決まっているのに、手作業で差し替えている」という状況です。

Claude Codeでパワポ生成ができる仕組み

Claude Code 自体がスライドを直接描画するわけではありません。Claude Code が得意なのは、python-pptx という Python ライブラリのコードを自然言語の指示から生成・修正することです。python-pptx は .pptx ファイルをプログラムから読み書きできるライブラリで、テキスト差し替え、画像挿入、表の追加、書式設定などを Python スクリプトで制御します。

つまり、作業の流れは次のようになります。人がやりたいことを日本語で Claude Code に伝える → Claude Code が python-pptx のコードを生成する → コードを実行して .pptx ファイルが出力される。この3ステップです。

方法できること向いている場面制約
Claude Code + python-pptxテキスト差し替え、画像配置、表挿入、バッチ生成テンプレートベースの量産、定型レポートterminal操作が必要、デザイン微調整はPowerPoint側で行う
手作業(PowerPoint GUI)自由なデザイン、アニメーション、細かい配置調整1回限りの重要プレゼン、デザイン重視繰り返し作業に時間がかかる、属人化しやすい
Claude Coworkローカルファイルを読みながら資料ドラフトを作成フォルダ内の情報を整理して叩き台を作るresearch preview、.pptx直接出力の精度は発展途上

Claude Code を選ぶ理由は、コードとして残るので再利用できること、テンプレートとデータを分離できること、そしてバッチ処理で何十件でも同じ品質で出力できることです。

最小構成:1スライドを生成するまでの手順

まず最小構成でスライドが1枚出力されることを確認します。ディレクトリ構成は次のようにします。

pptx-automation/
        ├── generate_slide.py      # Claude Codeに生成させるスクリプト
        ├── output/                # 生成された.pptxの出力先
        └── requirements.txt       # python-pptx の依存定義
        

Claude Code に対して、次のように指示します。

# Claude Codeへの指示例
        「python-pptxを使って、タイトルスライド1枚を生成するPythonスクリプトを作ってください。
        タイトルは '2026年度 営業戦略報告' 、サブタイトルは 'ファネルAi株式会社' にしてください。
        出力先は output/sample.pptx です。」
        

Claude Code はこの指示から python-pptx の Presentation オブジェクト生成、スライドレイアウト選択、プレースホルダーへのテキスト設定、ファイル保存までのコードを一括で生成します。生成されたスクリプトを python generate_slide.py で実行すると、output フォルダに .pptx ファイルが出力されます。

この段階で確認すべきことは3つです。ファイルが正常に開くか、テキストが意図通り入っているか、フォントが化けていないか。ここが通れば、次のテンプレート活用に進みます。

テンプレートを使ったスライド差し替えの手順

実務では白紙からスライドを生成するより、既存のテンプレート .pptx を読み込んで中身を差し替える方が圧倒的に多くなります。デザイン、フォント、配色はテンプレートに任せ、python-pptx はテキストとデータの流し込みだけを担当するのが安定する構成です。

pptx-automation/
        ├── templates/
        │   └── proposal_master.pptx   # デザイナーが作ったマスターテンプレート
        ├── data/
        │   └── variables.json          # 差し替え用の変数データ
        ├── fill_template.py            # テンプレ読み込み+差し替えスクリプト
        ├── output/
        └── requirements.txt
        

テンプレート設計で最も重要なのは、プレースホルダーの命名規則です。python-pptx はスライド内のプレースホルダーを idx(インデックス番号)で識別します。しかし idx はスライドマスター編集時にズレることがあるため、実務では次のルールを先に決めます。

  • テンプレート内のプレースホルダーに対応する変数名を JSON で定義する
  • 変数名は {{company_name}} のように二重波括弧で統一する
  • 画像差し替え用のプレースホルダーは位置とサイズを固定し、コード側で add_picture する

Claude Code への指示は次のような形になります。

# Claude Codeへの指示例
        「templates/proposal_master.pptx を読み込み、
        data/variables.json の値でテキストを差し替えるスクリプトを作ってください。
        プレースホルダーのテキスト内に {{company_name}} {{industry}} {{proposal_date}} が
        含まれている箇所を、JSONの対応するキーの値で置換してください。
        出力は output/filled_proposal.pptx です。」
        

この方式なら、テンプレートのデザインを変えたいときは .pptx を PowerPoint で編集するだけで済み、データを変えたいときは JSON を書き換えるだけで済みます。コードはほぼ変更不要です。

営業提案書への応用:顧客データで一括生成

テンプレート差し替えの仕組みが動いたら、次は顧客データ CSV を流し込んで提案書を一括生成する段階です。営業チームが毎週10〜20件の提案書を手作業で作っている場合、ここが最も ROI の高い自動化ポイントになります。

pptx-automation/
        ├── templates/
        │   └── proposal_master.pptx
        ├── data/
        │   ├── customers.csv           # 顧客名、業種、課題、提案内容など
        │   └── image_assets/           # 顧客ロゴや業種別アイコン
        ├── batch_generate.py           # CSV読み込み→ループ→pptx出力
        ├── output/
        │   ├── proposal_顧客A.pptx
        │   ├── proposal_顧客B.pptx
        │   └── proposal_顧客C.pptx
        └── requirements.txt
        

CSV のカラム設計は、テンプレートのプレースホルダーと1対1で対応させます。たとえば CSV に company_name, industry, pain_point, solution_summary, proposal_date のカラムがあれば、テンプレート内の {{company_name}} 等とそのまま対応します。

Claude Code には「customers.csv を1行ずつ読み、各行のデータで proposal_master.pptx を差し替えて、output フォルダに顧客名付きで保存するバッチスクリプトを作ってください」と指示すれば、pandas での CSV 読み込みから python-pptx での差し替えループ、ファイル名生成までを一括で書いてくれます。

提案書AIの考え方全般は 提案書AI活用の記事 で整理しています。また、Claude Cowork を使った営業資料の作成フローは Claude Coworkで営業資料作成時間をゼロにする方法 で確認できます。Claude Code との使い分けは、テンプレートとデータが分離できているかどうかで判断するのが実務的です。

フォント・画像・ブランドガイドラインの注意点

python-pptx でスライドを生成する際に、実務で最もトラブルになるのがフォントと画像の扱いです。以下の点を事前に押さえておくと手戻りが減ります。

  • フォント指定:python-pptx はフォント名を文字列で指定します。実行環境にそのフォントがインストールされていなくても .pptx には名前だけ埋め込まれますが、開く側の PC にフォントがないと代替フォントに置き換わります。テンプレートで使うフォントは全環境に入っているものに統一するのが無難です。
  • 画像の解像度とサイズadd_picture で挿入する画像は、EMU(English Metric Units)でサイズ指定します。Claude Code に「幅を10cmにして」と日本語で伝えれば、Cm 単位から EMU への変換コードも生成してくれます。
  • 配色とブランドガイドライン:テーマカラーはテンプレートの .pptx 側で定義し、python-pptx 側では RGB 直指定を避けるのが保守しやすい構成です。ブランドカラーをコードにハードコードすると、ガイドライン変更時に全スクリプトを修正する必要が出ます。
  • 日本語テキストの改行:python-pptx のテキストフレームに長い日本語を入れると、自動改行の位置がPowerPoint GUIと異なる場合があります。重要なスライドは出力後に目視確認する運用を入れておくのが安全です。

導入後に見るべきKPI

パワポ自動化を導入した後、効果が出ているかを判断するための指標を段階別に整理します。

段階見るべき指標目安
PoC(1〜2週間)1スライドの生成成功率、テンプレート差し替えの正確性手動修正なしで開ける .pptx が80%以上
パイロット(1〜2か月)1件あたりの作成時間削減率、作成者の属人度作成時間が50%以上削減、担当者以外でも実行可能
本番運用(3か月〜)月間生成件数、品質クレーム率、テンプレート更新頻度月間50件以上を安定処理、品質差し戻し5%以下

重要なのは、「スクリプトが動くか」ではなく「業務として回るか」を見ることです。テンプレート更新のたびにエンジニアが必要になる状態は、自動化の定着とは言えません。テンプレートとデータの分離がうまくいっていれば、営業担当が CSV を更新するだけで新しい提案書が生成できる状態が目指すべきゴールです。

よくある質問

Claude Codeでパワポのデザインも作れる?

python-pptx でフォント、配色、配置の指定は可能ですが、ゼロからデザイン性の高いスライドを作るのは向いていません。デザインはPowerPoint GUIで作ったテンプレートに任せ、Claude Code はデータの流し込みとレイアウト制御に集中させる方が実務的です。図形のグラデーションやアニメーションは python-pptx の対応範囲外になるため、必要な場合はテンプレート側に事前に組み込んでおく必要があります。

Keynoteにも対応できる?

python-pptx は .pptx 形式専用のライブラリです。Keynote の .key 形式を直接扱うことはできません。実務的な回避策としては、python-pptx で .pptx を生成した後に Keynote で開いて変換する、または Keynote を使う場面では別のアプローチ(例:Markdown から Marp でスライド生成)を検討する形になります。

テンプレートなしでも使える?

使えます。python-pptx はテンプレートなしでも白紙の Presentation オブジェクトからスライドを作成できます。ただし、白紙から作ると毎回フォント、配色、配置をコードで指定する必要があり、保守コストが上がります。実務ではテンプレートを先に1つ作ってから自動化に入る方が結果的に速いです。

Claude Coworkとの使い分けは?

テンプレートとデータが明確に分離できていて、繰り返し生成するならClaude Code + python-pptx が向いています。一方、フォルダ内の散在する資料から叩き台のスライドを1回作りたい、という場面では Claude Cowork の方が入口として自然です。量産フェーズに入ったら Claude Code へ移行する、という段階的な使い方も現実的です。

公開情報と責任主体

本記事は2026年2月3日時点の公開情報をもとに構成しています。Claude Code の機能や python-pptx の仕様は継続的に更新されるため、最新の動作は公式ドキュメントで確認してください。記事中のコード例は考え方の説明を目的としたものであり、特定の環境での動作を保証するものではありません。導入判断は各組織の責任において行ってください。

関連ページと関連記事

パワポ自動化の周辺を固めたい場合は、以下の記事で関連テーマを確認できます。

パワポ自動化をPoCから固めたい場合

テンプレート設計、プレースホルダーの命名規則、CSV の構造設計まで含めて、自社の提案書に合った形で自動化を進めたい場合は、PoCの範囲設定から相談できます。

PoC設計で先に決めておくと早い3項目

  • 自動化したいスライドの種類(提案書、報告書、セミナー資料)と月間作成件数を把握する
  • 現在のテンプレートの状態(統一されているか、属人化しているか)を確認する
  • 差し替えデータのソース(CRM、スプレッドシート、CSV)と更新頻度を整理する

この3点があると、最小構成のPoCを1週間で設計しやすくなります。

超速開発プランで相談する

ブログ一覧へ戻る