Claude Code × python-pptx でスライドのアニメーション・トランジションを一括自動設定する

Claude Code×python-pptxでPowerPointアニメーション・トランジションを全スライドに一括自動設定する方法を解説。フェード・スライドイン・ズームに対応。手作業半日→スクリプト数秒。コード付き。

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

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

全スライドへのフェードトランジション一括設定・テキストへのアニメーション自動付与をXMLレベルで自動化する完全ガイド。

アニメーション設定スライドデモ
📊 Claude Code 生成デモ

アニメーション設定スライドデモ

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

python-pptxでアニメーション・トランジションを自動設定

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

  • アニメーション一括自動設定の完全自動化を実現するPythonスクリプトを5ステップで解説
  • 「100枚スライドへの手動アニメーション設定」という課題を根本から解消する
  • Claude Codeへの自然言語指示だけでスクリプトを生成できる
  • 月・週・日単位の定期実行で完全無人化を実現する方法も紹介

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

スライドのアニメーション設定は手動では時間がかかります。Claude Code を使ってXMLレベルでトランジションを一括設定する方法を解説します。

ステップ1:全スライドにフェードトランジションを一括設定

💬 Claude Code へのプロンプト全スライドにフェードトランジション(1秒)を一括設定するスクリプトを作成して
from pptx import Presentation
from pptx.oxml.ns import qn
from lxml import etree

prs = Presentation("プレゼン.pptx")

for slide in prs.slides:
    existing = slide._element.find(qn("p:transition"))
    if existing is not None:
        slide._element.remove(existing)

    FADE_XML = (
        ''
    )
    transition = etree.fromstring(FADE_XML)
    slide._element.append(transition)

prs.save("プレゼン_フェード.pptx")
print(f"{len(prs.slides)}スライドにフェードトランジション設定完了")
✅ 実行結果

全スライドにフェードトランジションを一括設定。手動設定(20枚×30秒)がスクリプト実行2秒に。

ステップ2:プッシュ・ワイプなど複数トランジションを使い分け

from pptx import Presentation
from pptx.oxml.ns import qn
from lxml import etree

prs = Presentation("プレゼン.pptx")
NS = "http://schemas.openxmlformats.org/presentationml/2006/main"

TRANSITIONS = {
    "fade":   '',
    "push":   '',
    "wipe":   '',
    "zoom":   '',
}

for i, slide in enumerate(prs.slides):
    existing = slide._element.find(qn("p:transition"))
    if existing is not None:
        slide._element.remove(existing)

    if i == 0:
        t_type = "zoom"
    elif i % 5 == 0:
        t_type = "push"
    else:
        t_type = "fade"

    xml_str = TRANSITIONS[t_type].format(ns=NS)
    slide._element.append(etree.fromstring(xml_str))

prs.save("プレゼン_トランジション多彩.pptx")
print("スライドタイプ別トランジション設定完了")
✅ 実行結果

タイトルはズーム・区切りはプッシュ・通常はフェードと使い分けを自動設定。メリハリのあるプレゼンに。

ステップ3:既存トランジションを一括除去してクリーンに

from pptx import Presentation
from pptx.oxml.ns import qn

prs = Presentation("バラバラトランジション.pptx")
removed = 0

for slide in prs.slides:
    t = slide._element.find(qn("p:transition"))
    if t is not None:
        slide._element.remove(t)
        removed += 1

prs.save("クリーンプレゼン.pptx")
print(f"トランジション除去: {removed}スライド")
✅ 実行結果

バラバラに設定されたトランジションを一括除去。統一感のあるプレゼンに整備。

ステップ4:スライド番号・フッターを全スライドに一括追加

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

prs = Presentation("プレゼン.pptx")
total = len(prs.slides)

for i, slide in enumerate(prs.slides, 1):
    # ページ番号
    tb = slide.shapes.add_textbox(
        Inches(12.5), Inches(7.1), Inches(0.6), Inches(0.28)
    )
    tf = tb.text_frame
    tf.text = f"{i} / {total}"
    tf.paragraphs[0].runs[0].font.size = Pt(9)
    tf.paragraphs[0].runs[0].font.color.rgb = RGBColor(0x80, 0x80, 0x80)

    # フッターライン
    line = slide.shapes.add_shape(1, 0, Inches(7.1), prs.slide_width, Emu(36000))
    line.fill.solid()
    line.fill.fore_color.rgb = RGBColor(0xC4, 0x3E, 0x1C)
    line.line.fill.background()

prs.save("プレゼン_フッター付.pptx")
print(f"全{total}スライドにページ番号+フッター追加完了")
✅ 実行結果

全スライドにページ番号とフッターラインを一括追加。手動設定(1枚2分×20枚)がスクリプト実行5秒に。

📊 自動化で得られる効果
⏱ 作業時間(Before) トランジション設定:30分/資料(20枚想定)
⚡ 自動化後(After) スクリプト実行:2秒
設定時間 30分→2秒(99%以上削減)
統一性 スライドタイプ別ルールを自動適用
ミス防止 設定漏れ・バラつきゼロ

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

プロ品質のアニメーションをコードで一括設定。この自動化が特に効果的な場面と、解決できる課題を整理します。

❌ よくある課題

  • アニメーション設定に時間がかかりすぎて、肝心の内容作成に集中できない
  • 複数スライドに同じアニメーションを設定するのが煩雑で一貫性がない
  • アニメーションのタイミング(遅延・速度)調整が感覚的で再現性がない
  • テンプレートのアニメーション設定を新しいプレゼンに移行する方法がわからない

実務での活用シナリオ

業種・部門 活用方法と効果
営業提案 商品特長を順番にフェードインで表示。聴衆の注目を自然に誘導できる。
決算発表 KPI数値が下から上にスライドインして強調表示。数字のインパクトを最大化。
研修資料 ステップごとに内容を順次表示。受講者が先読みせず講師の説明に集中できる。
製品デモ 機能説明が自動的に順番に表示。プレゼン中のクリック操作を最小化。
イベント演出 タイトルのダイナミックな登場アニメーションで会場の注目を集める。

導入前後の効果比較

😫 Before ─ 従来の課題

100枚のスライドにアニメーションを手動設定するのに半日以上かかっていた。設定の一貫性を保つのが難しく、スライドごとに微妙に異なるアニメーションが混在していた。

✅ After ─ Claude Code で解決

python-pptxとXML操作でアニメーションを一括設定。フェード・スライドイン・バウンスなどのアニメーション種類・速度・遅延をコードで定義し、全スライドに均一に適用。

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

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

  • python-pptxはアニメーションの直接API未提供のため、XMLを直接操作する必要がある。Claude Codeに任せれば自動で適切なXMLを生成してくれる
  • アニメーションの遅延(delay)は適度に設定(0.3〜0.5秒)し、多用しすぎないことが重要
  • 発表練習のためにアニメーションを一時的に無効化したい場合は、PPTXのスライドショー設定で「アニメーションなし」を選択できる
  • 同じアニメーション設定を新しいPPTXに移行する場合は、XML部分をコピーする処理をスクリプト化すると毎回の設定が不要になる

よくある質問(FAQ)

Q. すべてのアニメーション種類が設定できますか?
A. PowerPoint標準のアニメーション(フェード・スライドイン・ズームなど)はXML操作で設定できます。一部の高度なアニメーションはVBAや手動設定が必要な場合があります。
Q. アニメーションの順番を変えるには?
A. XMLのブロックの順序を変更することで制御できます。Claude Codeに「3番目と5番目のアニメーションを入れ替えて」と指示するだけで対応してもらえます。
Q. スライドのタイミング(自動進行)も設定できますか?
A. はい。slide.slide_layoutのxml操作でadvanceTm(秒単位)を設定することで、クリックなしの自動進行プレゼンも実現できます。

まとめ

✅ 全スライドへのトランジション一括設定・除去
✅ スライドタイプ別に異なるトランジションを自動使い分け
✅ ページ番号・フッターの一括追加で仕上げを自動化

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

対象者 導入前の課題 Claude Code導入後
営業担当 プレゼン資料のアニメーション設定に毎回30分かかる スクリプトでアニメーションを一括設定して数分で完了
デザイナー 同じアニメーションパターンを複数スライドに手動コピー テンプレートアニメーション定義から全スライドに自動適用
講師・トレーナー スライドのアニメーション順序を手動で管理して混乱 アニメーション順序をJSONで定義して一括適用・変更が簡単

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

  • 1
    アニメーションはXML操作で実装:python-pptxのネイティブAPIはアニメーション操作に対応していません。lxml等でスライドXMLに直接アニメーションタグを追加する方法をClaude Codeが実装します。
  • 2
    アニメーションの種類・タイミングを外部設定化:「フェードイン0.5秒後・クリックで次へ」などの設定をJSONで外出しすることで、コードを変更せずにアニメーションパターンを変更できます。
  • 3
    適用後はLibreOfficeでプレビュー確認:XMLを直接操作するため意図しない壊れが起きることがあります。LibreOfficeでPDF変換して各スライドをプレビュー確認するQAステップを実装してください。

ビジネスインパクト

30分→数分
アニメーション設定時間
全スライド
一括適用できる範囲
設定標準化
担当者による差のなさ

この記事のまとめ

  • ✅ python-pptxとXML操作でPowerPointアニメーションを自動設定できる
  • ✅ 複数スライドに同一のアニメーションパターンを一括適用できる
  • ✅ アニメーション設定に費やす30分を数分に削減できる
  • ✅ アニメーション定義をJSONで管理して再利用・変更が簡単になる


関連記事


制作実績サンプル

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

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)導入によるマーケティング最適化やバックオフィス業務の自動化など、常に「事業数値(売上・利益)」に直結する改善実績多数。

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