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

pptx

プレゼンテーションの作成、編集、分析を実行します。Claudeが.pptxファイルの新規作成、内容の変更、レイアウト操作、コメントや発表者ノートの追加など、あらゆるプレゼンテーション関連タスクを行う際に使用します。

pptx とは?

このスキルは、ClaudeがPowerPointプレゼンテーション(.pptxファイル)を完全に制御できるように設計されています。.pptxファイルはZIPアーカイブであり、その内部のXMLファイルを直接読み書きすることで、**新規作成、既存ファイルの編集、内容の分析**の3つの主要なワークフローを提供します。 * **新規作成**では、`html2pptx`ライブラリを使用してHTMLからスライドを生成します。スライドごとにHTMLファイルを作成し、それをPowerPointに変換します。この際、**デザイン原則**(色彩選択、フォント、レイアウトなど)と**ビジュアルバリデーション**(サムネイル生成による確認)が厳密に求められます。 * **既存ファイルの編集**では、`unpack.py`でファイルを展開し、XMLを直接編集した後、`pack.py`で再パッケージ化します。編集後は`validate.py`による検証が必須です。 * **テンプレートからの作成**では、既存のテンプレートを分析し、そのデザインを再利用して新しいプレゼンテーションを作成します。 このスキルはClaude Codeプラットフォーム上で動作し、コマンドラインからPowerPointファイルの高度な操作を可能にします。プレゼンテーションの作成から、微妙なレイアウト調整、既存ファイルの細かな編集まで、幅広いタスクを自動化します。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ComposioHQ/awesome-claude-skills/tree/master/document-skills/pptx

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

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

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

ドキュメント

PPTXの作成、編集、分析

概要

ユーザーから.pptxファイルの作成、編集、または内容の分析を依頼される場合があります。.pptxファイルは基本的にZIPアーカイブであり、XMLファイルやその他のリソースが含まれており、読み取りや編集が可能です。タスクごとに様々なツールとワークフローが用意されています。

読み取りと分析

テキスト抽出

プレゼンテーションのテキスト内容を読み取るだけで良い場合は、ドキュメントをMarkdownに変換します:

# ドキュメントをMarkdownに変換
python -m markitdown path-to-file.pptx

生のXMLへのアクセス

コメント、発表者ノート、スライドレイアウト、アニメーション、デザイン要素、複雑な書式設定には、生のXMLへのアクセスが必要です。これらの機能のいずれかを使用する場合は、プレゼンテーションを展開し、その生のXML内容を読み取る必要があります。

ファイルの展開

python ooxml/scripts/unpack.py <office_file> <output_dir>

注: unpack.pyスクリプトは、プロジェクトルートからの相対パス skills/pptx/ooxml/scripts/unpack.py にあります。このパスにスクリプトが存在しない場合は、find . -name "unpack.py" を使用して場所を特定してください。

主要なファイル構造

  • ppt/presentation.xml - メインのプレゼンテーションメタデータとスライド参照
  • ppt/slides/slide{N}.xml - 個々のスライド内容(slide1.xml、slide2.xmlなど)
  • ppt/notesSlides/notesSlide{N}.xml - 各スライドの発表者ノート
  • ppt/comments/modernComment_*.xml - 特定のスライドに対するコメント
  • ppt/slideLayouts/ - スライドのレイアウトテンプレート
  • ppt/slideMasters/ - マスタースライドテンプレート
  • ppt/theme/ - テーマとスタイル情報
  • ppt/media/ - 画像やその他のメディアファイル

フォントと色の抽出

模倣するデザインのサンプルが与えられた場合: 以下の方法を使用して、まずプレゼンテーションのフォントと色を分析します。

  1. テーマファイルを読む: ppt/theme/theme1.xml で色(<a:clrScheme>)とフォント(<a:fontScheme>)を確認する
  2. サンプルスライド内容: ppt/slides/slide1.xml で実際のフォントの使用状況(<a:rPr>)と色を検査する
  3. パターンを検索: grepを使用して、すべてのXMLファイルで色(<a:solidFill>、<a:srgbClr>)とフォントの参照を検索する

テンプレートなしで新しいPowerPointプレゼンテーションを作成する

新しいPowerPointプレゼンテーションをゼロから作成する場合は、html2pptxワークフローを使用してHTMLスライドを正確な配置でPowerPointに変換します。

デザインの原則

重要: プレゼンテーションを作成する前に、内容を分析し適切なデザイン要素を選択してください:

  1. 主題を考慮する: このプレゼンテーションは何についてですか?どんなトーン、業界、雰囲気が示唆されていますか?
  2. ブランディングを確認する: ユーザーが会社/組織に言及している場合は、そのブランドカラーとアイデンティティを考慮する
  3. パレットを内容に合わせる: 主題を反映する色を選択する
  4. アプローチを説明する: コードを書く前に、デザインの選択を説明する

要件:

  • コードを書く前に、内容に基づいたデザインアプローチを説明してください
  • ウェブセーフフォントのみを使用する: Arial、Helvetica、Times New Roman、Georgia、Courier New、Verdana、Tahoma、Trebuchet MS、Impact
  • サイズ、太さ、色を通じて明確な視覚的階層を作成する
  • 読みやすさを確保する: 強いコントラスト、適切なサイズのテキスト、クリーンな配置
  • 一貫性を保つ: スライド間でパターン、間隔、視覚言語を繰り返す

カラーパレットの選択

色を創造的に選ぶ:

  • デフォルトを超えて考える: この特定のトピックに本当に合う色は何ですか?オートパイロットの選択は避けてください。
  • 複数の角度を考慮する: トピック、業界、ムード、エネルギーレベル、ターゲットオーディエンス、ブランドアイデンティティ(言及されている場合)
  • 冒険心を持つ: 意外な組み合わせを試す - ヘルスケアのプレゼンテーションが緑色である必要はなく、金融が濃紺である必要もありません
  • パレットを構築する: 一緒に機能する3〜5色を選ぶ(支配的な色 + サポートカラー + アクセント)
  • コントラストを確保する: テキストが背景上で明確に読み取れること

カラーパレットの例(創造性を刺激するために使用 - 選択、適合、または独自のものを作成):

  1. クラシックブルー: 濃紺 (#1C2833)、スレートグレー (#2E4053)、シルバー (#AAB7B8)、オフホワイト (#F4F6F6)
  2. ティール&コーラル: ティール (#5EA8A7)、ディープティール (#277884)、コーラル (#FE4447)、ホワイト (#FFFFFF)
  3. ボールドレッド: レッド (#C0392B)、ブライトレッド (#E74C3C)、オレンジ (#F39C12)、イエロー (#F1C40F)、グリーン (#2ECC71)
  4. ウォームブラッシュ: モーヴ (#A49393)、ブラッシュ (#EED6D3)、ローズ (#E8B4B8)、クリーム (#FAF7F2)
  5. バーガンディラグジュアリー: バーガンディ (#5D1D2E)、クリムゾン (#951233)、ラスト (#C15937)、ゴールド (#997929)
  6. ディープパープル&エメラルド: パープル (#B165FB)、ダークブルー (#181B24)、エメラルド (#40695B)、ホワイト (#FFFFFF)
  7. クリーム&フォレストグリーン: クリーム (#FFE1C7)、フォレストグリーン (#40695B)、ホワイト (#FCFCFC)
  8. ピンク&パープル: ピンク (#F8275B)、コーラル (#FF574A)、ローズ (#FF737D)、パープル (#3D2F68)
  9. ライム&プラム: ライム (#C5DE82)、プラム (#7C3A5F)、コーラル (#FD8C6E)、ブルーグレー (#98ACB5)
  10. ブラック&ゴールド: ゴールド (#BF9A4A)、ブラック (#000000)、クリーム (#F4F6F6)
  11. セージ&テラコッタ: セージ (#87A96B)、テラコッタ (#E07A5F)、クリーム (#F4F1DE)、チャコール (#2C2C2C)
  12. チャコール&レッド: チャコール (#292929)、レッド (#E33737)、ライトグレー (#CCCBCB)
  13. バイブラントオレンジ: オレンジ (#F96D00)、ライトグレー (#F2F2F2)、チャコール (#222831)
  14. フォレストグリーン: ブラック (#191A19)、グリーン (#4E9F3D)、ダークグリーン (#1E5128)、ホワイト (#FFFFFF)
  15. レトロレインボー: パープル (#722880)、ピンク (#D72D51)、オレンジ (#EB5C18)、アンバー (#F08800)、ゴールド (#DEB600)
  16. ヴィンテージアーシー: マスタード (#E3B448)、セージ (#CBD18F)、フォレストグリーン (#3A6B35)、クリーム (#F4F1DE)
  17. コースタルローズ: オールドローズ (#AD7670)、ビーバー (#B49886)、エッグシェル (#F3ECDC)、アッシュグレー (#BFD5BE)
  18. オレンジ&ターコイズ: ライトオレンジ (#FC993E)、グレイッシュターコイズ (#667C6F)、ホワイト (#FCFCFC)

ビジュアル詳細オプション

幾何学模様:

  • 水平ではなく斜めのセクション区切り線
  • 非対称のカラム幅(30/70、40/60、25/75)
  • 90°または270°に回転したテキストヘッダー
  • 画像用の円形/六角形のフレーム
  • コーナーにある三角形のアクセントシェイプ
  • 奥行きを出すための重なり合うシェイプ

境界線とフレームの処理:

  • 片側のみの太い単色境界線(10-20pt)
  • 対照的な色の二重線境界線
  • 完全なフレームの代わりにコーナーブラケット
  • L字型の境界線(上+左または下+右)
  • ヘッダーの下の下線アクセント(3-5ptの太さ)

タイポグラフィの処理:

  • 極端なサイズのコントラスト(72ptの見出し対11ptの本文)
  • 広い文字間隔のオールキャップスのヘッダー
  • 特大のディスプレイタイプでの番号付きセクション
  • データ/統計/技術的な内容には等幅フォント(Courier New)
  • 密集した情報にはコンデンスフォント(Arial Narrow)
  • 強調のためのアウトラインテキスト

チャートとデータのスタイリング:

  • 主要データには単一のアクセントカラーを使用したモノクロームチャート
  • 縦棒の代わりに横棒グラフ
  • 棒グラフの代わりにドットプロット
  • 最小限のグリッドライン、またはまったくなし
  • 凡例なしでデータラベルを要素に直接配置
  • 主要指標の特大の数字

レイアウトの革新:

  • テキストオーバーレイのあるフルブリード画像
  • ナビゲーション/コンテキスト用のサイドバーカラム(20-30%幅)
  • モジュラーグリッドシステム(3×3、4×4ブロック)
  • ZパターンまたはFパターンのコンテンツフロー
  • 色付きのシェイプの上に浮かぶテキストボックス
  • 雑誌スタイルのマルチカラムレイアウト

背景の処理:

  • スライドの40-60%を占める無地のカラーブロック
  • グラデーション塗りつぶし(垂直または斜めのみ)
  • 分割背景(2色、斜めまたは垂直)
  • 端から端までのカラーバンド
  • デザイン要素としてのネガティブスペース

レイアウトのヒント

チャートや表を含むスライドを作成する場合:

  • 2カラムレイアウト(推奨): 全幅のヘッダーを使用し、その下に2つのカラムを配置します - 一方のカラムにテキスト/箇条書き、もう一方のカラムに注目コンテンツを配置します。これによりバランスが良くなり、チャートや表が読みやすくなります。flexboxを使用して不均等なカラム幅(例:40%/60%の分割)で各コンテンツタイプに最適なスペースを確保します。
  • フルスライドレイアウト: 注目コンテンツ(チャート/表)がスライド全体を占めるようにして、最大のインパクトと読みやすさを実現します
  • 絶対に縦に積み重ねない: チャートや表をテキストの下に単一のカラムで配置しないでください - 読みやすさとレイアウトの問題を引き起こします

ワークフロー

  1. 必須 - ファイル全体を読む: html2pptx.md を最初から最後まで完全に読んでください。このファイルを読む際に範囲制限を決して設定しないでください。プレゼンテーション作成を進める前に、詳細な構文、重要な書式設定ルール、ベストプラクティスについてファイルの全文を読んでください。
  2. 各スライドに適切な寸法(例:16:9の場合は720pt×405pt)のHTMLファイルを作成します
    • すべてのテキストコンテンツに <p>、<h1>-<h6>、<ul>、<ol> を使用します
    • チャートや表が追加される領域には class="placeholder" を使用します(視認性のためにグレーの背景でレンダリングします)
    • 重要: グラデーションとアイコンは、まずSharpを使用してPNG画像としてラスタライズし、その後HTMLで参照します
    • レイアウト: チャートや表、画像を含むスライドには、読みやすさを向上させるためにフルスライドレイアウトまたは2カラムレイアウトを使用します
  3. html2pptx.js ライブラリを使用してJavaScriptファイルを作成し実行し、HTMLスライドをPowerPointに変換してプレゼンテーションを保存します
    • html2pptx() 関数を使用して各HTMLファイルを処理します
    • PptxGenJS APIを使用してプレースホルダー領域にチャートと表を追加します
    • pptx.writeFile() を使用してプレゼンテーションを保存します
  4. ビジュアルバリデーション: サムネイルを生成し、レイアウトの問題を検査します
    • サムネイルグリッドを作成: python scripts/thumbnail.py output.pptx workspace/thumbnails --cols 4
    • サムネイル画像を読み取り、注意深く検査します。以下の点を確認:
      • テキストの途切れ: テキストがヘッダーバー、シェイプ、スライドの端で途切れていないか
      • テキストの重なり: テキストが他のテキストやシェイプと重なっていないか
      • 配置の問題: コンテンツがスライドの境界線や他の要素に近すぎないか
      • コントラストの問題: テキストと背景の間のコントラストが不十分でないか
    • 問題が見つかった場合は、HTMLのマージン/間隔/色を調整し、プレゼンテーションを再生成します
    • すべてのスライドが視覚的に正しくなるまで繰り返します

既存のPowerPointプレゼンテーションを編集する

既存のPowerPointプレゼンテーションのスライドを編集する場合は、生のOffice Open XML(OOXML)形式を操作する必要があります。これには、.pptxファイルの展開、XMLコンテンツの編集、再パッケージ化が含まれます。

ワークフロー

  1. 必須 - ファイル全体を読む: ooxml.md(約500行)を最初から最後まで完全に読んでください。このファイルを読む際に範囲制限を決して設定しないでください。プレゼンテーション編集を開始する前に、OOXMLの構造と編集ワークフローに関する詳細なガイダンスについてファイルの全文を読んでください。
  2. プレゼンテーションを展開: python ooxml/scripts/unpack.py <office_file> <output_dir>
  3. XMLファイルを編集(主に ppt/slides/slide{N}.xml と関連ファイル)
  4. 重要: 各編集の直後に検証し、次のステップに進む前に検証エラーを修正してください: python ooxml/scripts/validate.py <dir> --original <file>
  5. 最終プレゼンテーションをパッケージ化: python ooxml/scripts/pack.py <input_directory> <office_file>

テンプレートを使用して新しいPowerPointプレゼンテーションを作成する

既存のテンプレートのデザインに従うプレゼンテーションを作成する必要がある場合は、テンプレートのスライドを複製して再配置し、プレースホルダーのコンテキストを置き換える必要があります。

ワークフロー

  1. テンプレートのテキストを抽出し、ビジュアルサムネイルグリッドを作成:

    • テキストを抽出: python -m markitdown template.pptx > template-content.md
    • template-content.mdを読む: テンプレートプレゼンテーションの内容を理解するためにファイル全体を読んでください。このファイルを読む際に範囲制限を決して設定しないでください。
    • サムネイルグリッドを作成: python scripts/thumbnail.py template.pptx
    • 詳細についてはサムネイルグリッドの作成セクションを参照
  2. テンプレートを分析し、インベントリをファイルに保存:

    • 視覚分析: サムネイルグリッドを確認して、スライドのレイアウト、デザインパターン、視覚構造を理解する
    • template-inventory.md にあるテンプレートインベントリファイルを作成し、保存する。内容は以下の通り:
    # テンプレートインベントリ分析
    **全スライド数: [count]**
    **重要: スライドは0から始まります(最初のスライド = 0、最後のスライド = count-1)**
    
    ## [カテゴリ名]
    - スライド 0: [利用可能な場合はレイアウトコード] - 説明/目的
    - スライド 1: [レイアウトコード] - 説明/目的
    - スライド 2: [レイアウトコード] - 説明/目的
    [... 各スライドをそのインデックスとともに個別にリストする必要があります ...]
    
    • サムネイルグリッドの使用: 視覚的なサムネイルを参照して以下を特定する:
      • レイアウトパターン(タイトルスライド、コンテンツレイアウト、セクション区切り)
      • 画像プレースホルダーの場所と数
      • スライドグループ間のデザインの一貫性
      • 視覚的な階層と構造
    • このインベントリファイルは、次のステップで適切なテンプレートを選択するために必須です。
  3. テンプレートインベントリに基づいてプレゼンテーションのアウトラインを作成:

    • ステップ2で利用可能なテンプレートを確認する。
    • 最初のスライドには、導入またはタイトルテンプレートを選択します。これは最初のテンプレートの1つにする必要があります。
    • 他のスライドには、安全でテキストベースのレイアウトを選択します。
    • 重要: レイアウト構造を実際の内容に合わせる:
      • 単一カラムレイアウト: 統一されたナレーションまたは単一のトピックに使用
      • 2カラムレイアウト: 正確に2つの異なるアイテム/概念がある場合にのみ使用
      • 3カラムレイアウト: 正確に3つの異なるアイテム/概念がある場合にのみ使用
      • 画像+テキストレイアウト: 実際に挿入する画像がある場合にのみ使用
      • 引用レイアウト: 強調のためではなく、実際の人の引用(帰属あり)にのみ使用
      • コンテンツよりも多くのプレースホルダーがあるレイアウトは決して使用しない
      • 2つのアイテムがある場合、それらを3カラムレイアウトに無理やり入れない
      • 4つ以上のアイテムがある場合、複数のスライドに分割するか、リスト形式の使用を検討する
    • レイアウトを選択する前に、実際のコンテンツの数を数える
    • 選択したレイアウトの各プレースホルダーが意味のあるコンテンツで満たされることを確認する

(翻訳のため省略)

Individual skills in this repo

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

ably-automation

Automate Ably tasks via Rube MCP (Composio). Always search tools first for current schemas.

abstract-automation

Automate Abstract tasks via Rube MCP (Composio). Always search tools first for current schemas.

abuselpdb-automation

Automate Abuselpdb tasks via Rube MCP (Composio). Always search tools first for current schemas.

abyssale-automation

Automate Abyssale tasks via Rube MCP (Composio). Always search tools first for current schemas.

accelo-automation

Automate Accelo tasks via Rube MCP (Composio). Always search tools first for current schemas.

accredible-certificates-automation

Automate Accredible Certificates tasks via Rube MCP (Composio). Always search tools first for current schemas.

acculynx-automation

Automate Acculynx tasks via Rube MCP (Composio). Always search tools first for current schemas.

active-campaign-automation

Automate ActiveCampaign tasks via Rube MCP (Composio). Always search tools first for current schemas.

addresszen-automation

Automate Addresszen tasks via Rube MCP (Composio). Always search tools first for current schemas.

adobe-automation

Automate Adobe tasks via Rube MCP (Composio). Always search tools first for current schemas.

adrapid-automation

Automate Adrapid tasks via Rube MCP (Composio). Always search tools first for current schemas.

adyntel-automation

Automate Adyntel tasks via Rube MCP (Composio). Always search tools first for current schemas.

aeroleads-automation

Automate Aeroleads tasks via Rube MCP (Composio). Always search tools first for current schemas.

aero-workflow-automation

Automate Aero Workflow tasks via Rube MCP (Composio). Always search tools first for current schemas.

affinda-automation

Automate Affinda tasks via Rube MCP (Composio). Always search tools first for current schemas.

affinity-automation

Automate Affinity tasks via Rube MCP (Composio). Always search tools first for current schemas.

agencyzoom-automation

Automate Agencyzoom tasks via Rube MCP (Composio). Always search tools first for current schemas.

agent-mail-automation

Automate Agent Mail tasks via Rube MCP (Composio). Always search tools first for current schemas.

agentql-automation

Automate Agentql tasks via Rube MCP (Composio). Always search tools first for current schemas.

agenty-automation

Automate Agenty tasks via Rube MCP (Composio). Always search tools first for current schemas.

関連スキル