pptx-generator
PowerPoint資料を、ゼロから作成したり、既存のものを編集したり、内容をテキストとして抽出したりすることで、プレゼンテーション資料作成を効率的に支援するSkill。
📜 元の英語説明(参考)
Generate, edit, and read PowerPoint presentations. Create from scratch with PptxGenJS (cover, TOC, content, section divider, summary slides), edit existing PPTX via XML workflows, or extract text with markitdown. Triggers: PPT, PPTX, PowerPoint, presentation, slide, deck, slides.
🇯🇵 日本人クリエイター向け解説
PowerPoint資料を、ゼロから作成したり、既存のものを編集したり、内容をテキストとして抽出したりすることで、プレゼンテーション資料作成を効率的に支援するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o pptx-generator.zip https://jpskill.com/download/19707.zip && unzip -o pptx-generator.zip && rm pptx-generator.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/19707.zip -OutFile "$d\pptx-generator.zip"; Expand-Archive "$d\pptx-generator.zip" -DestinationPath $d -Force; ri "$d\pptx-generator.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
pptx-generator.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
pptx-generatorフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 6
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
PPTXジェネレーター&エディター
概要
このスキルは、PowerPointに関するすべてのタスクを処理します。既存のプレゼンテーションの読み込み/分析、XML操作によるテンプレートベースのデッキの編集、PptxGenJSを使用したプレゼンテーションのゼロからの作成などが含まれます。完全なデザインシステム(カラーパレット、フォント、スタイルレシピ)と、あらゆるスライドタイプに対する詳細なガイダンスを提供します。
クイックリファレンス
| タスク | アプローチ |
|---|---|
| コンテンツの読み込み/分析 | python -m markitdown presentation.pptx |
| テンプレートからの編集または作成 | プレゼンテーションの編集を参照してください |
| ゼロからの作成 | 下記のゼロからの作成 — ワークフローを参照してください |
| 項目 | 値 |
|---|---|
| 寸法 | 10" x 5.625" (LAYOUT_16x9) |
| 色 | #なしの6文字の16進数(例: "FF0000") |
| 英語フォント | Arial (デフォルト)、または承認された代替フォント |
| 中国語フォント | Microsoft YaHei |
| ページバッジの位置 | x: 9.3", y: 5.1" |
| テーマキー | primary, secondary, accent, light, bg |
| 図形 | RECTANGLE, OVAL, LINE, ROUNDED_RECTANGLE |
| グラフ | BAR, LINE, PIE, DOUGHNUT, SCATTER, BUBBLE, RADAR |
リファレンスファイル
| ファイル | 内容 |
|---|---|
| slide-types.md | 5つのスライドページタイプ(カバー、目次、セクション区切り、コンテンツ、要約)+追加のレイアウトパターン |
| design-system.md | カラーパレット、フォントリファレンス、スタイルレシピ(Sharp/Soft/Rounded/Pill)、タイポグラフィ&スペーシング |
| editing.md | テンプレートベースの編集ワークフロー、XML操作、書式設定ルール、よくある落とし穴 |
| pitfalls.md | QAプロセス、よくある間違い、PptxGenJSの重大な落とし穴 |
| pptxgenjs.md | 完全なPptxGenJS APIリファレンス |
コンテンツの読み込み
# テキスト抽出
python -m markitdown presentation.pptx
ゼロからの作成 — ワークフロー
テンプレートや参照プレゼンテーションが利用できない場合に使用します。
ステップ1: 調査と要件
ユーザーの要件(トピック、対象読者、目的、トーン、コンテンツの深さ)を理解するために調査します。
ステップ2: カラーパレットとフォントの選択
カラーパレットリファレンスを使用して、トピックと対象読者に合ったパレットを選択します。フォントリファレンスを使用して、フォントの組み合わせを選択します。
ステップ3: デザインスタイルの選択
スタイルレシピを使用して、プレゼンテーションのトーンに合ったビジュアルスタイル(Sharp、Soft、Rounded、またはPill)を選択します。
ステップ4: スライドのアウトラインの計画
すべてのスライドを5つのページタイプのいずれか1つに分類します。各スライドのコンテンツとレイアウトを計画します。視覚的な多様性を確保し、同じレイアウトを複数のスライドで繰り返さないでください。
ステップ5: スライドJSファイルの生成
slides/ディレクトリにスライドごとに1つのJSファイルを作成します。各ファイルは同期的なcreateSlide(pres, theme)関数をエクスポートする必要があります。スライド出力形式とslide-types.mdのタイプ固有のガイダンスに従ってください。利用可能な場合は、サブエージェントを使用して最大5つのスライドを同時に生成します。
各サブエージェントに指示すること:
- ファイル命名:
slides/slide-01.js、slides/slide-02.jsなど - 画像の保存先:
slides/imgs/ - 最終的なPPTXの保存先:
slides/output/ - 寸法: 10" x 5.625" (LAYOUT_16x9)
- フォント: 中国語 = Microsoft YaHei、英語 = Arial (または承認された代替フォント)
- 色: #なしの6文字の16進数(例:
"FF0000") - テーマオブジェクトコントラクトを必ず使用すること(テーマオブジェクトコントラクトを参照)
- PptxGenJS APIリファレンスに必ず従うこと
ステップ6: 最終的なPPTXへのコンパイル
すべてのスライドモジュールを結合するためにslides/compile.jsを作成します。
// slides/compile.js
const pptxgen = require('pptxgenjs');
const pres = new pptxgen();
pres.layout = 'LAYOUT_16x9';
const theme = {
primary: "22223b", // dark color for backgrounds/text
secondary: "4a4e69", // secondary accent
accent: "9a8c98", // highlight color
light: "c9ada7", // light accent
bg: "f2e9e4" // background color
};
for (let i = 1; i <= 12; i++) { // adjust count as needed
const num = String(i).padStart(2, '0');
const slideModule = require(`./slide-${num}.js`);
slideModule.createSlide(pres, theme);
}
pres.writeFile({ fileName: './output/presentation.pptx' });
以下で実行します: cd slides && node compile.js
ステップ7: QA (必須)
QAプロセスを参照してください。
出力構造
slides/
├── slide-01.js # スライドモジュール
├── slide-02.js
├── ...
├── imgs/ # スライドで使用される画像
└── output/ # 最終成果物
└── presentation.pptx
スライド出力形式
各スライドは完全で実行可能なJSファイルです。
// slide-01.js
const pptxgen = require("pptxgenjs");
const slideConfig = {
type: 'cover',
index: 1,
title: 'Presentation Title'
};
// 同期である必要があります (非同期ではない)
function createSlide(pres, theme) {
const slide = pres.addSlide();
slide.background = { color: theme.bg };
slide.addText(slideConfig.title, {
x: 0.5, y: 2, w: 9, h: 1.2,
fontSize: 48, fontFace: "Arial",
color: theme.primary, bold: true, align: "center"
});
return slide;
}
// スタンドアロンプレビュー - スライド固有のファイル名を使用
if (require.main === module) {
const pres = new pptxgen();
pres.layout = 'LAYOUT_16x9';
const theme = {
primary: "22223b",
secondary: "4a4e69",
accent: "9a8c98",
light: "c9ada7",
bg: "f2e9e4"
};
createSlide(pres, theme);
pres.writeFile({ fileName: "slide-01-preview.pptx" });
}
module.exports = { createSlide, slideConfig };
テーマオブジェクトコントラクト (必須)
コンパイルスクリプトは、以下の正確なキーを持つテーマオブジェクトを渡します。
| キー | 目的 | 例 |
|---|---|---|
theme.primary |
最も濃い色、タイトル | "22223b" |
theme.second |
(原文がここで切り詰められています) |
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
PPTX Generator & Editor
Overview
This skill handles all PowerPoint tasks: reading/analyzing existing presentations, editing template-based decks via XML manipulation, and creating presentations from scratch using PptxGenJS. It includes a complete design system (color palettes, fonts, style recipes) and detailed guidance for every slide type.
Quick Reference
| Task | Approach |
|---|---|
| Read/analyze content | python -m markitdown presentation.pptx |
| Edit or create from template | See Editing Presentations |
| Create from scratch | See Creating from Scratch below |
| Item | Value |
|---|---|
| Dimensions | 10" x 5.625" (LAYOUT_16x9) |
| Colors | 6-char hex without # (e.g., "FF0000") |
| English font | Arial (default), or approved alternatives |
| Chinese font | Microsoft YaHei |
| Page badge position | x: 9.3", y: 5.1" |
| Theme keys | primary, secondary, accent, light, bg |
| Shapes | RECTANGLE, OVAL, LINE, ROUNDED_RECTANGLE |
| Charts | BAR, LINE, PIE, DOUGHNUT, SCATTER, BUBBLE, RADAR |
Reference Files
| File | Contents |
|---|---|
| slide-types.md | 5 slide page types (Cover, TOC, Section Divider, Content, Summary) + additional layout patterns |
| design-system.md | Color palettes, font reference, style recipes (Sharp/Soft/Rounded/Pill), typography & spacing |
| editing.md | Template-based editing workflow, XML manipulation, formatting rules, common pitfalls |
| pitfalls.md | QA process, common mistakes, critical PptxGenJS pitfalls |
| pptxgenjs.md | Complete PptxGenJS API reference |
Reading Content
# Text extraction
python -m markitdown presentation.pptx
Creating from Scratch — Workflow
Use when no template or reference presentation is available.
Step 1: Research & Requirements
Search to understand user requirements — topic, audience, purpose, tone, content depth.
Step 2: Select Color Palette & Fonts
Use the Color Palette Reference to select a palette matching the topic and audience. Use the Font Reference to choose a font pairing.
Step 3: Select Design Style
Use the Style Recipes to choose a visual style (Sharp, Soft, Rounded, or Pill) matching the presentation tone.
Step 4: Plan Slide Outline
Classify every slide as exactly one of the 5 page types. Plan the content and layout for each slide. Ensure visual variety — do NOT repeat the same layout across slides.
Step 5: Generate Slide JS Files
Create one JS file per slide in slides/ directory. Each file must export a synchronous createSlide(pres, theme) function. Follow the Slide Output Format and the type-specific guidance in slide-types.md. Generate up to 5 slides concurrently using subagents if available.
Tell each subagent:
- File naming:
slides/slide-01.js,slides/slide-02.js, etc. - Images go in:
slides/imgs/ - Final PPTX goes in:
slides/output/ - Dimensions: 10" x 5.625" (LAYOUT_16x9)
- Fonts: Chinese = Microsoft YaHei, English = Arial (or approved alternative)
- Colors: 6-char hex without # (e.g.
"FF0000") - Must use the theme object contract (see Theme Object Contract)
- Must follow the PptxGenJS API reference
Step 6: Compile into Final PPTX
Create slides/compile.js to combine all slide modules:
// slides/compile.js
const pptxgen = require('pptxgenjs');
const pres = new pptxgen();
pres.layout = 'LAYOUT_16x9';
const theme = {
primary: "22223b", // dark color for backgrounds/text
secondary: "4a4e69", // secondary accent
accent: "9a8c98", // highlight color
light: "c9ada7", // light accent
bg: "f2e9e4" // background color
};
for (let i = 1; i <= 12; i++) { // adjust count as needed
const num = String(i).padStart(2, '0');
const slideModule = require(`./slide-${num}.js`);
slideModule.createSlide(pres, theme);
}
pres.writeFile({ fileName: './output/presentation.pptx' });
Run with: cd slides && node compile.js
Step 7: QA (Required)
See QA Process.
Output Structure
slides/
├── slide-01.js # Slide modules
├── slide-02.js
├── ...
├── imgs/ # Images used in slides
└── output/ # Final artifacts
└── presentation.pptx
Slide Output Format
Each slide is a complete, runnable JS file:
// slide-01.js
const pptxgen = require("pptxgenjs");
const slideConfig = {
type: 'cover',
index: 1,
title: 'Presentation Title'
};
// MUST be synchronous (not async)
function createSlide(pres, theme) {
const slide = pres.addSlide();
slide.background = { color: theme.bg };
slide.addText(slideConfig.title, {
x: 0.5, y: 2, w: 9, h: 1.2,
fontSize: 48, fontFace: "Arial",
color: theme.primary, bold: true, align: "center"
});
return slide;
}
// Standalone preview - use slide-specific filename
if (require.main === module) {
const pres = new pptxgen();
pres.layout = 'LAYOUT_16x9';
const theme = {
primary: "22223b",
secondary: "4a4e69",
accent: "9a8c98",
light: "c9ada7",
bg: "f2e9e4"
};
createSlide(pres, theme);
pres.writeFile({ fileName: "slide-01-preview.pptx" });
}
module.exports = { createSlide, slideConfig };
Theme Object Contract (MANDATORY)
The compile script passes a theme object with these exact keys:
| Key | Purpose | Example |
|---|---|---|
theme.primary |
Darkest color, titles | "22223b" |
theme.secondary |
Dark accent, body text | "4a4e69" |
theme.accent |
Mid-tone accent | "9a8c98" |
theme.light |
Light accent | "c9ada7" |
theme.bg |
Background color | "f2e9e4" |
NEVER use other key names like background, text, muted, darkest, lightest.
Page Number Badge (REQUIRED)
All slides except Cover Page MUST include a page number badge in the bottom-right corner.
- Position: x: 9.3", y: 5.1"
- Show current number only (e.g.
3or03), NOT "3/12" - Use palette colors, keep subtle
Circle Badge (Default)
slide.addShape(pres.shapes.OVAL, {
x: 9.3, y: 5.1, w: 0.4, h: 0.4,
fill: { color: theme.accent }
});
slide.addText("3", {
x: 9.3, y: 5.1, w: 0.4, h: 0.4,
fontSize: 12, fontFace: "Arial",
color: "FFFFFF", bold: true,
align: "center", valign: "middle"
});
Pill Badge
slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x: 9.1, y: 5.15, w: 0.6, h: 0.35,
fill: { color: theme.accent },
rectRadius: 0.15
});
slide.addText("03", {
x: 9.1, y: 5.15, w: 0.6, h: 0.35,
fontSize: 11, fontFace: "Arial",
color: "FFFFFF", bold: true,
align: "center", valign: "middle"
});
Dependencies
pip install "markitdown[pptx]"— text extractionnpm install -g pptxgenjs— creating from scratchnpm install -g react-icons react react-dom sharp— icons (optional)
同梱ファイル
※ ZIPに含まれるファイル一覧。`SKILL.md` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。
- 📄 SKILL.md (7,930 bytes)
- 📎 references/design-system.md (16,159 bytes)
- 📎 references/editing.md (6,577 bytes)
- 📎 references/pitfalls.md (3,849 bytes)
- 📎 references/pptxgenjs.md (12,752 bytes)
- 📎 references/slide-types.md (15,790 bytes)