◀ 7.

PPTX(.pptx)とは|Office Open XML 構造と python-pptx

▶
この記事の要点
  • PPTX は Microsoft PowerPoint 2007 以降の標準形式で、OOXML (ISO/IEC 29500) に基づく
  • DOCX/XLSX 同様、ZIP + XML 構造。スライドごとに XML が分かれる
  • スライド本体は ppt/slides/slideN.xml、テーマは ppt/theme/themeN.xml、マスタースライドは ppt/slideMasters/
  • フォント・画像・動画・音声も .pptx 内部に内包できる (埋め込み)
  • Python では python-pptx で生成・編集できる
  • 配布時のサイズ肥大化と「フォント未埋め込みでの崩れ」が典型的な落とし穴

概要

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.pptxOOXMLPowerPoint業界標準・編集容易
PPT (旧).ppt独自バイナリPowerPoint 97-2003レガシー
ODP.odpODFLibreOffice ImpressOSS スイート標準
KEY.keyApple 独自KeynoteMac/iOS 環境
PDF.pdfISO 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 の有効化は厳禁

関連リンク

Post Share
子ページ

子ページはありません

同階層のページ
  1. PDF(.pdf)
  2. CSV(.csv)
  3. Markdown(.md)
  4. TXT(.txt)
  5. DOCX(.docx)
  6. XLSX(.xlsx)
  7. PPTX(.pptx)
  8. TSV(.tsv)
  9. RTF(.rtf)
  10. ODT / ODS / ODP(.odt / .ods / .odp)