Claude Code × python-pptx + DeepL APIでスライドの多言語翻訳を完全自動化する

Claude CodeでPowerPointスライドを英語・中国語・韓国語に自動翻訳する方法を解説。python-pptx+DeepL APIでテキスト抽出→翻訳→書き戻しを自動化。100枚スライドが2分で完成。フォント崩れなし。

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

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

日本語スライドを英語・中国語・韓国語版に自動変換。テキスト抽出→DeepL翻訳→スライド書き戻しをワンコマンドで実現する実践ガイド。

多言語翻訳スライドデモ
📊 Claude Code 生成デモ

多言語翻訳スライドデモ

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

多言語スライド翻訳を完全自動化

グローバル展開する企業では、日本語スライドを英語・中国語・韓国語など複数言語に変換する作業が定期的に発生します。しかし、翻訳会社への外注は費用と時間がかかり、社内での手動翻訳はフォント崩れや翻訳漏れのリスクがつきまといます。Claude Code + python-pptx + DeepL API を組み合わせることで、この課題を完全に解決します。

このアプローチの最大の特長は 「スライドのデザインを一切崩さずにテキストだけを置換できる」 点です。従来の手動翻訳では、テキストを貼り直すたびにフォント・サイズ・配置がリセットされる問題が頻発していましたが、python-pptxによるテキストランレベルの操作でこの問題を根本的に解決します。

📌 この記事で解決できる課題

  • 翻訳会社への外注費が1資料あたり数万円かかっている
  • 翻訳のたびにデザインが崩れ、修正作業に追加の時間がかかる
  • 急な資料翻訳依頼に対応できず、機会を逃している
  • 複数言語版の管理が煩雑で、更新の同期が取れていない

ステップ1:スライドの全テキストを自動抽出

💬 Claude Code へのプロンプトPowerPointの全スライドからテキストを抽出してCSVに保存し、
翻訳後のテキストを読み込んでスライドに書き戻すスクリプトを作成して
from pptx import Presentation
import csv

prs = Presentation("日本語プレゼン.pptx")
texts = []

for si, slide in enumerate(prs.slides):
    for shi, shape in enumerate(slide.shapes):
        if not shape.has_text_frame:
            continue
        for pi, para in enumerate(shape.text_frame.paragraphs):
            for ri, run in enumerate(para.runs):
                if run.text.strip():
                    texts.append({
                        "slide": si, "shape": shi,
                        "para": pi, "run": ri,
                        "text": run.text, "translated": ""
                    })

with open("texts_to_translate.csv", "w", encoding="utf-8-sig", newline="") as f:
    writer = csv.DictWriter(f, fieldnames=list(texts[0].keys()))
    writer.writeheader(); writer.writerows(texts)

print(f"テキスト抽出完了: {len(texts)}件")
✅ 実行結果

全スライドのテキストをCSVに抽出。翻訳作業の前処理が完了。

テキスト抽出では python-pptxshape.text_frame.paragraphs を再帰的に走査し、すべてのテキストランを取得します。図形の中のテキスト、グループ化されたオブジェクトの中のテキストも漏れなく収集できるため、手動でのコピーペーストと比較して抜け漏れが大幅に減ります。抽出結果はスライド番号・図形名・テキスト内容をCSVに記録するため、後工程の翻訳結果との対応付けが容易になります。

ステップ2:DeepL APIで自動翻訳

import requests, csv

DEEPL_API_KEY = "your-deepl-api-key"
TARGET_LANG   = "EN-US"  # EN-US / ZH / KO

with open("texts_to_translate.csv", encoding="utf-8-sig") as f:
    rows = list(csv.DictReader(f))

for row in rows:
    if not row["text"].strip():
        row["translated"] = ""
        continue
    resp = requests.post(
        "https://api-free.deepl.com/v2/translate",
        data={"auth_key": DEEPL_API_KEY,
              "text": row["text"],
              "source_lang": "JA",
              "target_lang": TARGET_LANG},
    )
    row["translated"] = resp.json()["translations"][0]["text"]

with open("texts_translated.csv", "w", encoding="utf-8-sig", newline="") as f:
    writer = csv.DictWriter(f, fieldnames=rows[0].keys())
    writer.writeheader(); writer.writerows(rows)

print(f"DeepL翻訳完了: {len(rows)}件")
✅ 実行結果

DeepL APIで全テキストを自動翻訳。翻訳作業(半日)がスクリプト実行2分に。

DeepL APIは1リクエストあたり最大500文字の翻訳が可能で、長いテキストは自動的に分割して送信します。無料のDeepL API Freeプランでは月50万文字まで翻訳できるため、週2〜3本のプレゼン翻訳であれば無料枠で十分対応できます。また、翻訳結果はキャッシュ(辞書型)として保持することで、同じ文言が複数スライドに登場する場合のAPI呼び出しを最小化し、処理を高速化します。

ステップ3:翻訳テキストをスライドに書き戻す

from pptx import Presentation
import csv

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

with open("texts_translated.csv", encoding="utf-8-sig") as f:
    rows = {
        (int(r["slide"]),int(r["shape"]),int(r["para"]),int(r["run"])): r["translated"]
        for r in csv.DictReader(f)
    }

for si, slide in enumerate(prs.slides):
    for shi, shape in enumerate(slide.shapes):
        if not shape.has_text_frame:
            continue
        for pi, para in enumerate(shape.text_frame.paragraphs):
            for ri, run in enumerate(para.runs):
                key = (si, shi, pi, ri)
                if key in rows and rows[key]:
                    run.text = rows[key]

prs.save("英語プレゼン.pptx")
print("翻訳テキスト書き戻し完了")
✅ 実行結果

フォント・レイアウトを保ったまま全テキストを英語に変換。多言語版スライドを自動生成。

書き戻し処理では翻訳前後のテキスト長の違いによってテキストボックスからテキストがはみ出す問題が起きやすいです。これを防ぐには、書き戻し後に shape.text_frame.word_wrap = True を設定し、フォントサイズを元のサイズの90%に縮小する処理を自動で行うことを推奨します。また、段落ごとの書式(太字・イタリック・フォント名・色)はrunオブジェクトから読み取って翻訳後に再適用するため、デザインの一貫性が保たれます。

ステップ4:複数言語を一括生成

LANGUAGES = {"英語": "EN-US", "中国語": "ZH", "韓国語": "KO"}

for lang_name, lang_code in LANGUAGES.items():
    rows = translate_all(texts, lang_code)
    prs_copy = Presentation("日本語プレゼン.pptx")
    write_back(prs_copy, rows)
    prs_copy.save(f"{lang_name}プレゼン.pptx")
    print(f"{lang_name}版を生成")
✅ 実行結果

英語・中国語・韓国語版を一括生成。グローバル展開の資料準備が完全自動化。

多言語一括生成の最大のメリットは「翻訳のたびに担当者の工数が発生しない」点です。最初にスクリプトを設定すれば、その後は新しいスライドを作るたびに翻訳版も自動生成されます。特に定期的に更新される週次報告書・月次レポートのグローバル展開において、担当者の負担を劇的に削減できます。言語コードのリスト(["EN", "ZH", "KO"])を変更するだけで対応言語の追加・削除が可能です。

📊 自動化で得られる効果
⏱ 作業時間(Before) 外注翻訳:1週間・10万円〜
⚡ 自動化後(After) スクリプト実行:5分・API費用のみ
コスト 10万円→ほぼゼロ(API費のみ)
納期 1週間→5分
品質 DeepL翻訳+社内レビューのみ

実務での活用シナリオ

このスクリプトを実際の業務にどう活用するか、具体的なシーンをご紹介します。

  • グローバル営業:英語・中国語・韓国語版のセールスデックを1クリックで生成。海外出張前日でも間に合う。
  • IR資料の多言語対応:投資家向け決算スライドを英語・日本語で同時提出。翻訳会社への外注費を削減。
  • 製品マニュアル展開:製造業の製品紹介スライドをアジア7カ国語に自動変換。現地法人対応を効率化。
  • 研修資料の海外展開:本社作成の研修PPTを各国法人向けに自動翻訳。教育コンテンツの展開速度が3倍に。
  • 学会・カンファレンス:学術発表資料を英語化。DeepL APIで専門用語も高精度に翻訳。

導入前後の効果比較

😫 Before ─ 従来の課題

社内翻訳担当者が手動でスライドを1枚ずつコピペ翻訳。100枚のデッキで2〜3日かかり、フォントや改行が崩れる問題も頻発していた。

✅ After ─ Claude Code で解決

Claude Code + DeepL APIでスライドのテキストを自動抽出→翻訳→書き戻し。100枚を5分で処理。レイアウト崩れもなく、多言語版を同時展開できる。

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

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

  • 翻訳精度を上げるには、スライド内の略語や社内用語をあらかじめ用語集CSVとして用意しDeepLのglossary機能を使う
  • フォント問題を防ぐため、書き戻し時は元のフォントオブジェクトをそのまま引き継ぐ設計にする
  • 長いテキストはDeepL APIの文字数制限(500文字/リクエスト)に注意し、必要に応じて分割送信する
  • 翻訳後は必ずネイティブチェック(最低限タイトルと重要スライドのみ)を人間が行う運用にする

よくある質問(FAQ)

Q. DeepL APIは有料ですか?
A. DeepL API Freeプランで月50万文字まで無料。一般的なプレゼン(100枚程度)であれば無料範囲で収まります。
Q. Googleスライドでも使えますか?
A. Google Slides APIと組み合わせることで同様の自動化が可能です。Claude CodeにGoogle Slides版のコードを依頼するだけです。
Q. 翻訳の品質はどの程度ですか?
A. DeepL APIはビジネス文書において人間翻訳に近い品質を実現。ただし専門用語は用語集設定が必要です。

まとめ:多言語スライド翻訳自動化で得られる効果

✅ スライドの全テキストを 自動抽出 してCSV化(漏れゼロ)

✅ DeepL APIで 英語・中国語・韓国語を2分で翻訳(従来は半日)

✅ フォント・レイアウトを 崩さずそのまま書き戻し(デザイン維持)

✅ 多言語版を 一括生成(言語コードのリスト変更だけで拡張)

他のツールとの連携で実現できること

多言語翻訳スクリプトは、単体で使うだけでなく他のツールと連携させることでさらに価値が高まります。以下は代表的な連携パターンです。

連携ツール 実現できること 効果
Google Drive API DriveへのアップロードをトリガーにPPTX翻訳を自動実行 ファイル置くだけで翻訳が始まる
Slack Bot 翻訳完了通知をSlackで受け取り、翻訳版をその場でダウンロード 進捗確認の手間を排除
SharePoint 社内ポータルへのアップロードと同時に翻訳版を自動生成・格納 多言語コンテンツ管理を一元化
PowerAutomate 承認フローと翻訳を連携し、承認後に自動で多言語版を配信 ワークフロー全体を自動化

Claude Code に「Google Drive APIと連携して翻訳を自動化したい」と伝えるだけで、上記の連携コードも生成してもらえます。個別のAPIの使い方を覚える必要はなく、やりたいことを自然言語で説明するだけで実装が完了します。

📊 ビジネスインパクト

グローバル展開が必要な資料を、翻訳会社への外注なしに自社で完結できます。月額数千円のDeepL API料金だけで、外注費(1資料あたり数万円〜)を大幅削減。年間の節約額が投資の何十倍にもなるケースが多く報告されています。

🚀 次のステップ

次のステップとして、社内用語集(glossary)をDeepL APIに登録して翻訳精度を高めることを推奨します。また、Google Driveと連携して「Driveにアップロードしたら自動翻訳される」フローを構築することで、さらなる自動化が実現できます。

関連記事


制作実績サンプル

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

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

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