Officialコーディング&開発github.com

pptx

このスキルは、.pptx または .potx ファイルが入力、出力、あるいはその両方として関わるあらゆる場面で使用します。スライドデッキ、ピッチデッキ、プレゼンテーションの作成、.pptx や .potx ファイルからのテキスト読み取り、解析、抽出(抽出したコンテンツをメールや要約など他の場所で使用する場合も含む)、既存のプレゼンテーションの編集、変更、更新、スライドファイルの結合や分割、テンプレート (.potx)、レイアウト、発表者ノート、コメントの操作などが含まれます。ユーザーがこれらの操作について言及したときにトリガーされます。

pptx とは?

このスキルは、PowerPoint形式(.pptx / .potx)のファイルを総合的に操作するための強力なツールです。主に3つのアプローチを提供します。1) **新規作成**では、`pptxgenjs`ライブラリを使用してプログラム的にスライドデッキを生成します。多くの注意点が文書化されており、色コードや影の設定、チャートの扱いなど、ファイル破損を防ぐための具体的なガイドラインが提供されています。2) **既存デッキの編集やテンプレートからの作成**では、`.pptx`ファイルをZIPとして解凍し、内部のXMLを直接編集してから再パッケージ化するワークフローをサポートします。スライドの複製、削除、並べ替え、クリーンアップを行う専用スクリプトと、スキーマや関係性を検証するバリデーションツールが用意されています。3) **コンテンツの読み取り**では、`markitdown`を使用して各スライドの内容をテキストとして抽出したり、`thumbnail.py`スクリプトでスライドのサムネイルグリッドを生成して視覚的にレイアウトを確認できます。このスキルは、開発者がAIエージェント(Claude Code, Cursor, Codexなど)のコンテキスト内で、効率的かつ堅牢にPowerPointファイルを操作するために設計されています。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/anthropics/skills/tree/main/skills/pptx

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

PPTX の作成、編集、分析

.pptx ファイルは XML ファイルの ZIP アーカイブです。タスクに応じてアプローチを選択してください。

タスクアプローチ
新規 デッキの作成pptxgenjs スクリプトを書く(下記の注意点を参照)
既存 デッキの編集、またはテンプレートからの作成unzip → ppt/slides/slideN.xml を編集 → zip
内容の読み取りmarkitdown deck.pptx(<!-- Slide number: N --> マーカーで区切られたスライドごとのブロック); 視覚グリッド: python scripts/thumbnail.py deck.pptx

スクリプト

パスはこのスキルのディレクトリからの相対パスです。その他はすべてプレーンな Python、node、またはシェルです。

スクリプト機能
scripts/thumbnail.py deck.pptx [prefix]すべてのスライドのラベル付きグリッドを作成し、テンプレートレイアウトを選択するために使用します。.pptx のみ。prefix を指定できます(デフォルトは thumbnails で、同じディレクトリ内の他のデッキのグリッドを上書きします)
scripts/add_slide.py unpacked/ slide2.xml [--after slideN.xml]スライド(または slideLayoutN.xml)を、パッケージのブックキーピングを含めて複製します。-o out.pptx オプションで .pptx ファイルを直接受け取ることもできます
scripts/clean.py unpacked/参照されなくなったスライド、メディア、rels を削除します。<p:sldIdLst> が最終確定した後に実行してください
scripts/office/validate.py deck.pptx [--original src.pptx]スキーマ、関係、コンテンツタイプ、チャート、スライドのチェックを行い、各失敗に対して修正方法を提示します。テンプレートから派生したデッキの場合は --original を指定してください。テンプレート自身の XSD エラーがあなたのエラーと誤認されるのを防ぐため、スキーマチェックのベースラインをテンプレートに合わせます
scripts/office/soffice.py --headless --convert-to pdf deck.pptxLibreOffice ラッパー — 素の soffice はこのサンドボックスではハングします

pptxgenjs での作成 — 注意点

pptxgenjs はプリインストールされています — npm install を実行しないでください。スクリプトを書き、直接 require('pptxgenjs') を使用してください。require が失敗した場合のみ npm install pptxgenjs を実行してください。モデルは API を知っていますが、以下が落とし穴です。

  • スライドを追加する前に pres.layout を設定してください。 デフォルトのキャンバスは LAYOUT_16x9 = 10" × 5.625" であり、幅は 13.3 インチではありません。端を超えた座標は書き込まれますが、クランプされません — 単にそのシェイプがスライド上に存在しないことになります。(LAYOUT_WIDE は 13.3" × 7.5" です。)
  • 16進数カラー: # は使わず、8桁も使用しないでください。 color: "FF0000" のように指定します。"#FF0000" やアルファ値を16進数に含めること("00000020")は ファイルを破損させます。半透明にするには、塗りつぶしや画像には transparency: 0-100 を、影には opacity: 0.0-1.0 を使用してください — それぞれ、相手側では黙って無視されます。
  • pptxgenjs はオプションオブジェクトをインプレースで変更します(最初の使用時に値を EMU に変換します)。1 つの shadow/options オブジェクトを複数の add* 呼び出しで共有しないでください — 毎回新しいオブジェクトを構築してください。
  • 影の offset は 0 以上である必要があります — 負のオフセットはファイルを破損させます。上向きの影を落とすには、正のオフセットで angle: 270 を使用してください。
  • letterSpacing は黙って無視されます — 実際のオプションは charSpacing です。
  • リスト: 各アイテムに bullet: true を設定し、リテラルの • は使用しないでください(二重の箇条書きになります)。最後のアイテムを除くすべての配列アイテムに breakLine: true を設定してください。箇条書きの段落の間隔は lineSpacing ではなく paraSpaceAfter で空けてください(lineSpacing だと大きな隙間ができます)。
  • 出力ファイルごとに 1 つの new pptxgen() — インスタンスを再利用しないでください。
  • rectRadius は ROUNDED_RECTANGLE でのみ機能します。RECTANGLE では機能しません。
  • グラデーションの塗りつぶしはサポートされていません — 代わりに背景としてグラデーション画像を使用してください。
  • テキストボックスには組み込みの内部パディングがあります — テキストが同じ x 座標にあるシェイプ、ライン、またはアイコンと整列する必要がある場合は、margin: 0 を設定してください。
  • 発表者ノートは slide.addNotes("...") に記述します(プレーンテキスト、スライドごとに 1 回)。スライド上のテキストボックスには記述しないでください。
  • チャートはネイティブに保ってください。 PowerPoint でグラフ化できるものにはすべて addChart() を使用してください(コンボチャートの場合は {type, data, options} の配列を渡します)。ライブラリが公開していない PowerPoint ネイティブ機能(トレンドライン、エラーバー)については、自分で追加の系列を計算するか、生成された OOXML を後処理してください — レンダリングされた画像にフォールバックしないでください。PowerPoint にネイティブな形式がないチャートタイプ(Sankey、ネットワーク、コード)のみ、画像として挿入してください。
  • デフォルトのチャートは簡素にレンダリングされます — タイトル、データラベルなし、時代遅れのパレット。パレットから showTitle + title、showValue: true + dataLabelPosition、chartColors: [...] を設定し、フレームを静かにしてください(catAxisLabelColor/valAxisLabelColor、valGridLine: { color, size }、catGridLine: { style: "none" }、単一系列の場合は showLegend: false)。
  • 積み上げ棒または縦棒グラフの場合、dataLabelPosition は ctr、inEnd、または inBase である必要があります。 outEnd は ファイルを破損させます。
  • secondaryValAxis/secondaryCatAxis を使用するコンボ系列は、チャートオプションに valAxes と catAxes の両方を、それぞれ 2 つのエントリで必要とします。 これらがないと、pptxgenjs は宣言されていない軸 id を書き込み、PowerPoint は そのチャートを破棄し、ファイルを破損として報告します。valAxes のみを指定するだけでは不十分です。
  • writeFile() の後、python scripts/office/validate.py deck.pptx を実行してください。 上記の 2 つのチャート障害と、PowerPoint が拒否するスライド XML の欠陥を報告し、それぞれの修正方法を示します。生成プログラム内で修正してください。パックされた XML を手動で編集しないでください。
  • <p:presentation> の子要素を並べ替えないでください。 pptxgenjs は <p:sldIdLst> の直後に <p:notesMasterIdLst> を書き込み、両方のマスターを 1 つのテーマパーツにポイントします。PowerPoint はそれを問題なく読み取ります — 要素を移動すると、同じデッキが開けなくなります。
  • アイコン: react-icons を SVG にレンダリングし(ReactDOMServer.renderToStaticMarkup)、sharp で 256px 以上にラスタライズし、addImage({ data: "image/png;base64," + buf.toString("base64") }) で挿入します — image/png;base64, プレフィックスは必須です(react-icons、react、react-dom、sharp はプリインストールされています — require が失敗した場合のみ npm install react-icons react react-dom sharp を実行してください)。

既存のデッキとテンプレートの編集

まずレイアウトを選択します: python scripts/thumbnail.py template.pptx template-thumbs は、すべてのスライドのラベル付きグリッドを作成し、作成したファイルを出力します — template-thumbs.jpg、12 スライドを超える場合は template-thumbs-N.jpg に分割されます。デッキ名にちなんだその第 2 引数は常に渡してください。 デフォルトは thumbnails であるため、1 つのディレクトリで 2 つのデッキのサムネイルを作成すると、互いのグリッドを黙って上書きします — 最初のデッキのグリッドは単に失われます(テンプレート分析のみ — ビジュアル QA には 画像への変換 のフル解像度レンダリングが必要です。.pptx のみを受け入れるため、最初に .potx ファイルを .pptx という名前にコピーしてください)。markitdown と組み合わせて使用し、各コンテンツセクションをテンプレートのスライドにマッピングし、レイアウトを変化させてください — すべてのセクションを同じタイトルと箇条書きのスライドに配置しないでください。

python3 -c "import sys,zipfile; zipfile.ZipFile(sys.argv[1]).extractall('unpacked')" deck.pptx
python scripts/add_slide.py unpacked/ slide2.xml --after slide2.xml   # スライド(または slideLayoutN.xml)を複製します。新しいスライドのパスを出力します
# スライドの並べ替え/削除 = ppt/presentation.xml の <p:sldIdLst> を編集します
python scripts/clean.py unpacked/                                     # 削除後: 孤立したスライド、メディア、rels を削除します
# ppt/slides/slideN.xml のスライドコンテンツを編集します
(cd unpacked && rm -f ../out.pptx && zip -Xr ../out.pptx .)           # ディレクトリの内部から zip します。最初に rm しないと、削除された部分が残ります
python scripts/office/validate.py out.pptx --original deck.pptx
  • すべての構造作業(追加、削除、並べ替え)は、スライドのコンテンツを編集する前に行ってください。 add_slide.py はスライドファイルをそのままコピーするため、編集後に複製すると編集済みのコンテンツが複製されます。また、clean.py は <p:sldIdLst> に存在しないスライド(書き込んだばかりのスライドも含む)を削除します。
  • スライドファイルを手動でコピーしないでください — add_slide.py が新しいスライドに必要なすべての登録を行い、作成したものを報告します(Created ppt/slides/slide17.xml from slide2.xml)。また、ファイルに対して直接動作します: add_slide.py deck.pptx slide2.xml -o out.pptx — -o を渡してください。渡さないと、入力デッキをインプレースで上書きします。 複製されたスライドは、ソースのチャート/SmartArt/埋め込みオブジェクトのパーツを複製するのではなく、参照 するため、一方のスライドのチャートを編集すると、もう一方のスライドも変更されます。
  • python-pptx を使用する場合、これができないことが 3 つあります: スライドの複製(唯一のエントリポイントは add_slide(layout))、text_frame.text = "..." による書式の保持(段落を単一のスタイルなしの run に折りたたみます — 代わりに run.text を割り当ててください)、ほとんどのテンプレートアートで使用される SVG/EMF の読み取り(add_picture は UnidentifiedImageError を発生させます)。
  • レガシーな .ppt は最初に変換する必要があります: python scripts/office/soffice.py --headless --convert-to pptx file.ppt。.potx テンプレートは同じように解凍およびパッケージ化されます — 出力の拡張子は .potx のままにしてください。
  • テンプレートのアイコンや画像を再利用するには、それを既に含むスライドまたはレイアウトを複製してください。

テンプレートにデータを入力する場合:

  • XML 変換をスクリプト化する場合は、defusedxml.minidom を使用して解析してください — OOXML を xml.etree.ElementTree でラウンドトリップすると、名前空間プレフィックスが書き換えられ、デッキが破損します。
  • テンプレートのスロット ≠ ソースアイテムです。 テンプレートに 4 人のチームメンバーが表示されていて、あなたが 3 人しかいない場合は、4 人目のメンバーのグループ全体(画像 + テキストボックス)を削除してください。テキストだけを削除しないでください — その後、QA で孤立したビジュアルがないか確認してください。
  • リストアイテムごとに 1 つの <a:p> — アイテムを単一の段落に連結しないでください。兄弟の <a:pPr> をコピーして間隔を維持し、タイトル、セクションヘッダー、およびインラベル(Status:、Owner:)の <a:rPr> に b="1" を設定してください。
  • 箇条書きはレイアウトから継承させてください。上書きする場合のみ <a:buChar>、<a:buAutoNum>(番号付き)、または <a:buNone> を追加してください — テキストにリテラルの • は使用しないでください。
  • 先頭または末尾にスペースがあるテキストは、その <a:t> に xml:space="preserve" が必要です。

デザインアイデア

退屈なスライドを作成しないでください。 白い背景にプレーンな箇条書きは誰も感心させません。各スライドについて、このリストからアイデアを検討してください。

開始前

  • 大胆で、コンテンツに基づいたカラーパレットを選択してください: パレットは、このトピックのためにデザインされたと感じられるものであるべきです。あなたの色をまったく異なるプレゼンテーションに適用しても「機能する」のであれば、十分に具体的な選択をしていないことになります。
  • 優位性、平等性ではなく: 1 つの色が優勢(視覚的な重みの 60-70%)になり、1-2 の補助的なトーンと 1 つのシャープなアクセントカラーを持つようにしてください。すべての色に均等な重みを与えないでください。
  • ダーク/ライトのコントラスト: タイトルスライドと結論スライドには暗い背景を、コンテンツスライドには明るい背景を使用します(「サンドイッチ」構造)。または、プレミアム感を出すために全体を暗く統一することも検討してください。
  • ビジュアルモチーフにコミットしてください: 1 つの特徴的な要素を選び、それを繰り返します — 丸い画像フレーム、色付きの円の中のアイコン。すべてのスライドにわたってそれを引き継いでください。モチーフとしてカラーバーやアクセントストライプを使用しないでください(回避リストを参照)。

カラーパレット

トピックに合わせた色を選択してください — デフォルトの無難な青にはしないでください。これらのパレットを参考にしてください。

テーマプライマリセカンダリアクセント
ミッドナイトエグゼクティブ1E2761 (ネイビー)CADCFC (アイスブルー)FFFFFF (ホワイト)
フォレスト&モス2C5F2D (フォレスト)97BC62 (モス)F5F5F5 (クリーム)
コーラルエナジーF96167 (コーラル)F9E795 (ゴールド)2F3C7E (ネイビー)
ウォームテラコッタB85042 (テラコッタ)E7E8D1 (サンド)A7BEAE (セージ)
オーシャングラデーション065A82 (ディープブルー)1C7293 (ティール)21295C (ミッドナイト)
チャコールミニマル36454F (チャコール)F2F2F2 (オフホワイト)212121 (ブラック)
ティールトラスト028090 (ティール)00A896 (シーフォーム)02C39A (ミント)
ベリー&クリーム6D2E46 (ベリー)A26769 (ダスティローズ)ECE2D0 (クリーム)
セージカーム84B59F (セージ)69A297 (ユーカリ)50808E (スレート)
チェリーボールド990011 (チェリー)FCF6F5 (オフホワイト)2F3C7E (ネイビー)

スライドごとに

すべてのスライドにビジュアル要素が必要です — 画像、チャート、アイコン、またはシェイプ。テキストのみのスライドは忘れられがちです。

レイアウトオプション:

  • 2 カラム(左にテキスト、右にイラスト)
  • アイコン + テキスト行(色付きの円の中のアイコン、太字のヘッダー、その下に説明)
  • 2x2 または 2x3 グリッド(片側に画像、もう片側にコンテンツブロックのグリッド)
  • ハーフブリード画像(左端または右端全体)とコンテンツのオーバーレイ

データ表示:

  • 大きな統計のコールアウト(60-72pt の大きな数字と、その下に小さなラベル)
  • 比較カラム(Before/After、賛否、オプションの比較)
  • タイムラインまたはプロセスフロー(番号付きステップ、矢印)

ビジュアルの洗練:

  • セクションヘッダーの横にある小さな色付きの円の中のアイコン
  • 主要な統計やタグラインのためのイタリック体のアクセントテキスト

タイポグラフィ

あなたが .pptx に書き込んだフォント名は、この環境ではなく、ユーザーの PowerPoint によってレンダリングされます。 あなたのビジュアル QA は LibreOffice を介してレンダリングされます。LibreOffice は持っていないフォントを代替し、一部のフォントでは代替フォントの幅が異なるため、QA プレビューでは実際のデッキにはないテキストオーバーフロー(またはフィット)が表示される可能性があります。QA を信頼できるものにするには:

  • 安全なフォント(QA で実際の幅にレンダリングされ、かつ Office に同梱されています): Arial、Calibri、Cambria、Times New Roman、Courier New、Bookman Old Style、Century Schoolbook。本文テキストやフィットが重要なものにはこれらを使用してください。
  • QA リスクゼロで個性のあるヘッダー: 安全なリストのセリフヘッダー(Cambria、Bookman Old Style、Century Schoolbook)と、安全なリストのサンセリフ本文(Calibri または Arial)を組み合わせてください。信頼性の高いオーバーフローチェックを犠牲にすることなく、視覚的なコントラストを得られます。
  • ユーザーが安全なリスト以外のフォントを要求した場合(例: Georgia や Trebuchet MS): ユーザーが要求した場所でそれを使用しますが、それらのコンテナには余分なスラック(約 10%)を付けてサイズ設定し、それらの要素の QA テキストフィットを信頼しないでください — そのフォントのプレビューは概算です。ユーザーが指定していない場合は、本文テキストには安全なリストのフォントを優先してください。
  • QA で信頼できないフォント(代替フォントの幅が異なる — オーバーフローチェックが正しくない可能性があります): Georgia、Trebuchet MS、Impact、Arial Black、Garamond、Consolas、Palatino Linotype。Calibri Light の代替は環境によって異なります。QA で信頼できないものとして扱ってください。スラックのあるタイトル/アクセントには問題ありません。これらの QA テキストフィットは信頼しないでください。
  • デフォルトで Aptos を使用しないでください — Office の 2023 年以降のデフォルトには、ここにメトリック互換の代替がなく、かつ 古い Office インストールには存在しないため、両方の環境で信頼できません。
要素サイズ
スライドタイトル36-44pt 太字
セクションヘッダー20-24pt 太字
本文テキスト14-16pt
キャプション10-12pt 控えめな色

…

[翻訳のため省略]

Individual skills in this repo

This repo contains 19 individual skills — each has its own dedicated page.

academy-guide

Stop and check this skill before finishing any reply to a question about how to use Claude or a Claude product — it recommends matching courses, tutorials, and use cases from Claude Academy (academy.claude.com), Anthropic's learning hub. Trigger on: "how do I", "how can I", "getting started with", "what can Claude do", "teach me", "learn to use"; questions about artifacts, projects, skills, plugins, connectors, MCP; requests about rolling Claude out to a team, class, or organization; and any ask for training materials, onboarding content, or learning resources. Use it when the user is learning how to use a feature or product — not when they are mid-task and just want the task done. This skill composes with other skills: after consulting product documentation to answer how a Claude feature works, also check here for a matching course or tutorial — a docs-grounded answer and an Academy recommendation belong together. Only recommend on a strong match; never invent Academy content.

algorithmic-art

Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists

anthropics/template-skill

Replace with description of the skill and when Claude should use it.

brand-guidelines

Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.

canvas-design

Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists

claude-api

|-

discernment-nudge

After you give a substantive answer or draft that the user may act on — advice or recommendations, drafted artifacts such as goals, plans, pitches, proposals, or emails, estimates or projections, analysis or interpretation of data, factual claims they may rely on, or a multi-step argument — invoke this skill BEFORE finalizing your reply and then, if it applies, append 2-3 short follow-up questions, each tied to something specific in what you just produced, that help the user check key facts, probe the reasoning or assumptions, and notice missing context. Do this at most once per conversation. Skip it when the user asked a trivial how-to or simple lookup, wants a purely educational explanation, asked you only to format, convert, or assemble a file from content they provided, is writing code they will run, is doing creative writing or casual chat, or already asked you to double-check, cite, or review — the skill file explains these boundaries and the exact output format.

doc-coauthoring

Guide users through a structured workflow for co-authoring documentation. Use when user wants to write documentation, proposals, technical specs, decision docs, or similar structured content. This workflow helps users efficiently transfer context, refine content through iteration, and verify the doc works for readers. Trigger when user mentions writing docs, creating proposals, drafting specs, or similar documentation tasks.

docx

Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files) or Word templates (.dotx files). Triggers include: any mention of

frontend-design

Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.

internal-comms

A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).

mcp-builder

Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).

pdf

Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text/tables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting/decrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.

skill-creator

Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill

slack-gif-creator

Knowledge and utilities for creating animated GIFs optimized for Slack. Provides constraints, validation tools, and animation concepts. Use when users request animated GIFs for Slack like

theme-factory

Toolkit for styling artifacts with a theme. These artifacts can be slides, docs, reportings, HTML landing pages, etc. There are 10 pre-set themes with colors/fonts that you can apply to any artifact that has been creating, or can generate a new theme on-the-fly.

webapp-testing

Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.

web-artifacts-builder

Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn/ui). Use for complex artifacts requiring state management, routing, or shadcn/ui components - not for simple single-file HTML/JSX artifacts.

xlsx

Use this skill any time a spreadsheet file is the primary input or output. This means any task where the user wants to: open, read, edit, or fix an existing .xlsx, .xlsm, .xltx, .csv, or .tsv file (e.g., adding columns, computing formulas, formatting, charting, cleaning messy data); create a new spreadsheet from scratch or from other data sources; or convert between tabular file formats. Trigger especially when the user references a spreadsheet file by name or path — even casually (like \

関連スキル