| この記事の要点 |
|
概要
PPTX は Microsoft PowerPoint 2007 以降の標準保存形式。DOCX / XLSX と同じ Office Open XML (OOXML) ファミリで、ECMA-376 / ISO/IEC 29500 に準拠する。
プレゼンテーション資料、教育用スライド、ピッチデック、社内勉強会など、ビジネスの場で広く使われる。スライド単位で構造化された XML を持ち、スライドマスター・レイアウト・テーマの三層で見た目を継承する設計になっている。
内部構造
.pptx を展開すると、スライド本体 / レイアウト / マスター / テーマ / メディア (画像・音声) がディレクトリ分けされている。
# PPTX の中身を確認
unzip -l keynote.pptx
# [Content_Types].xml
# _rels/.rels
# ppt/presentation.xml ← プレゼン全体構成
# ppt/slides/slide1.xml ← スライド 1
# ppt/slides/slide2.xml ← スライド 2
# ppt/slideLayouts/slideLayout1.xml
# ppt/slideMasters/slideMaster1.xml
# ppt/theme/theme1.xml ← 色・フォントテーマ
# ppt/media/image1.png ← 埋め込み画像
# ppt/media/audio1.mp3 ← 埋め込み音声
# ppt/embeddings/oleObject1.bin ← 埋め込み Excel など
# docProps/core.xml
スライド本体は <p:sld> をルートに、図形 (sp)・グラフィックフレーム (graphicFrame)・画像 (pic) などのシェイプ要素を並べる。
<p:sld xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main"
xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main">
<p:cSld>
<p:spTree>
<p:sp>
<p:txBody>
<a:p>
<a:r>
<a:rPr lang="ja-JP" b="1"/>
<a:t>タイトル</a:t>
</a:r>
</a:p>
</p:txBody>
</p:sp>
</p:spTree>
</p:cSld>
</p:sld>
主な用途
- 社内外プレゼン — 企画提案、進捗報告、決算説明会
- 教育・研修 — 講義スライド、社内勉強会
- 営業資料 — 製品紹介、サービス説明
- カンファレンス登壇 — 技術カンファ・学会のスライド
- 動画素材 — スライドを録画してウェビナーや YouTube に
- テンプレート配布 — 統一されたコーポレートデザインの社内テンプレ
関連形式との比較
| 形式 | 拡張子 | 仕様 | 編集の主役 | 特徴 |
|---|---|---|---|---|
| PPTX | .pptx | OOXML | PowerPoint | 業界標準・編集容易 |
| PPT (旧) | .ppt | 独自バイナリ | PowerPoint 97-2003 | レガシー |
| ODP | .odp | ODF | LibreOffice Impress | OSS スイート標準 |
| KEY | .key | Apple 独自 | Keynote | Mac/iOS 環境 |
| ISO 32000 | — | 配布専用・編集不可 | ||
| Google Slides | (クラウド) | 独自 | Google Slides | 共同編集に強い |
編集・パーサ・ツール
python-pptx はスライドを自動生成する定番。グラフや表もコードから流し込める。
from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.dml.color import RGBColor
prs = Presentation()
prs.slide_width = Inches(13.33)
prs.slide_height = Inches(7.5)
# タイトルスライド
slide = prs.slides.add_slide(prs.slide_layouts[0])
slide.shapes.title.text = '2026 上期実績報告'
slide.placeholders[1].text = '営業本部 / 2026-07-01'
# 本文スライド
slide = prs.slides.add_slide(prs.slide_layouts[1])
slide.shapes.title.text = 'ハイライト'
body = slide.placeholders[1].text_frame
body.text = '売上 +12.4% (YoY)'
body.add_paragraph().text = '新規顧客 348 社'
body.add_paragraph().text = '解約率 0.9% に低下'
prs.save('report.pptx')
pandoc + reveal.js のような変換も可能。Markdown 原稿から .pptx を生成するワークフローを組めば、登壇準備が楽になる。
# Markdown -> PPTX
pandoc slides.md -o slides.pptx --reference-doc=template.pptx
注意点・落とし穴
- ファイルサイズの肥大化 — 画像・動画を貼り込むと数百 MB になりがち。画像は事前に圧縮してから貼る
- フォントが置換される — 特殊フォント使用時は埋め込み (「ファイル」→「オプション」→「保存」) を有効化しないと別 PC で崩れる
- 動画リンク切れ — 動画を「リンク」で挿入すると別環境で再生不能。配布前提なら「埋め込み」を選ぶ
- OLE オブジェクト — Excel/Word の貼り込み (oleObject) は別ファイル参照になることがあり、配布先で開けない
- 互換性 — Keynote / Google Slides で開くとアニメーション・フォントが再現されないケースがある
- マクロ付き .pptm — 添付 .pptm のマクロ実行は標的型攻撃の温床。受け取った .pptm の有効化は厳禁
関連リンク
子ページ
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Git pushした変更の取消し|revert・履歴変更と保護の注意点 2026-10-15 23:49:01
- Gitでローカルを戻す前に|reset・restoreの違いと退避範囲 2026-10-15 23:49:01
- Git rebaseの使い方|対象範囲・競合解決・pushの判断 2026-10-15 22:50:59
- Git pullの使い方|取込み先・ff-only・競合とstashの注意点 2026-10-15 22:50:59
- Git pushの使い方|送信先・タグ・force-with-leaseの条件 2026-10-15 22:12:47
- Git remoteの設定・確認・削除|SSH URLとfetch/pushの違い 2026-10-15 22:12:47
- Gitリモートリポジトリの作成|初回push・既存履歴・mirrorの注意 2026-10-15 15:48:16
- Gitのuser.name・user.email設定|local/global・確認と過去履歴の注意 2026-10-15 15:30:07
- LinuxにGitをインストール|配布元・初期設定・TLSと認証の確認 2026-10-15 15:30:06
- Git導入と初回push|Linuxサーバー・Windows/macOS・SSH設定 2026-10-15 14:51:54
- Db2のCREATE INDEX|索引定義・INCLUDEと実行計画の確認 2026-10-15 14:10:22
- Db2の自動採番|IDENTITY・ID取得とRESTARTの注意点 2026-10-15 14:10:22
- 【DB2】特定スキーマの全テーブルの全カラム情報を取得する方法 2026-10-15 13:53:15
- Db2のシーケンスとIDENTITYの違い|採番とカタログの確認SQL 2026-10-15 13:53:15
- Db2で複数カラムをUPDATEする方法|SET・WHEREと更新前の値 2026-10-15 13:53:15