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)

最近更新/作成されたページ