PowerPoint の内容はスライドという「見える形」で保存されているため、そのままではメモ帳や Git の差分で確認しにくいのが実情です。Markdown に変換しておくと、テキストとして一覧できるほか、ナレッジベースや LLM への入力、ドキュメントのバージョン管理にもそのまま活用できます。
Spire.Presentation for Python には、PowerPoint を Markdown に変換する機能が用意されています。変換の方法は次の 3 種類です。
- プレゼンテーション全体を 1 つの Markdown ファイルに変換する
- 指定したスライドを 1 枚だけ Markdown ファイルに出力する
- 複数のスライドを順番に Markdown ファイルとして出力する
いずれも Microsoft PowerPoint のインストールは不要で、Python のコードだけで変換できます。
1. インストール
次の pip コマンドで Spire.Presentation for Python をインストールします。
pip install Spire.Presentation
2. サンプルファイル
ここでは、次の 3 スライドで構成される 報告資料.pptx を使います。
- スライド 1:表題と報告者を記載した表紙
- スライド 2:「ハイライト」という見出しと、3 つの実績項目
- スライド 3:「地域別売上実績」という見出しと、5 行 4 列の表
スライド 3 の表は、Python で PowerPoint プレゼンテーションのテーブルを作成・編集する方法 と同じ手順で作成できます。
以降のセクションで、このサンプルを全体変換・スライド単位・複数枚連続の 3 つの方法で Markdown に変換します。
3. プレゼンテーション全体を Markdown に変換する
Presentation.SaveToFile() と FileFormat.Markdown を組み合わせると、プレゼンテーション全体を 1 つの Markdown ファイルに変換できます。手順は次のとおりです。
Presentationオブジェクトを作成するPresentation.LoadFromFile()で PPT/PPTX ファイルを読み込むPresentation.SaveToFile()に出力先のパスとFileFormat.Markdownを指定して保存するPresentation.Dispose()でリソースを解放する
from spire.presentation import *
import os
# Presentation オブジェクトを作成する
presentation = Presentation()
# PowerPoint ファイルを読み込む
presentation.LoadFromFile("報告資料.pptx")
# プレゼンテーション全体を Markdown ファイルとして保存する
presentation.SaveToFile("報告資料.md", FileFormat.Markdown)
# リソースを解放する
presentation.Dispose()
print("保存しました: 報告資料.md")
print("ファイルサイズ:", os.path.getsize("報告資料.md"), "bytes")
このスクリプトを実行すると、読み込んだファイルと同じ場所に 報告資料.md が保存されます。

生成されたファイルの中身は次のようにテキストとして確認できます。

出力される Markdown には、次の特徴があります。
- スライドの区切りに
==== Page 1 ====のようなページマーカーが入る - スライド上のテキストが行として並ぶ
- 太字を設定した文字は
**…**で出力される - 表は
|区切りの Markdown 表として出力される
4. 指定したスライドを Markdown に変換する
1 枚だけ出力したいときは、Presentation.Slides[インデックス] で対象のスライドを取得し、ISlide.SaveToFile() で Markdown として保存します。手順は次のとおりです。
Presentationオブジェクトを作成してPresentation.LoadFromFile()でファイルを読み込むPresentation.Slides[]で出力したいスライドを取得するISlide.SaveToFile()に出力先のパスとFileFormat.Markdownを指定して保存するPresentation.Dispose()でリソースを解放する
from spire.presentation import *
# Presentation オブジェクトを作成する
presentation = Presentation()
# PowerPoint ファイルを読み込む
presentation.LoadFromFile("報告資料.pptx")
# 2 番目のスライドを取得する(インデックスは 0 から始まる)
slide = presentation.Slides[1]
# 指定したスライドを Markdown ファイルとして保存する
slide.SaveToFile("スライド2.md", FileFormat.Markdown)
# リソースを解放する
presentation.Dispose()
インデックスは 0 から始まるため、2 番目のスライドは Slides[1] です。スライドの取得や、インデックスの考え方については、Python で PowerPoint プレゼンテーションのスライドを追加・削除する方法 でも紹介しています。この方法で保存したファイルには、対象の 1 スライド分の内容だけが入り、ページマーカーも ==== Page 1 ==== から振られます。

実績項目の 3 行がそのまま 3 つの行として出力されました。全体変換でもスライド単位でも、テキストの並び順はスライド上の配置順に従います。
5. 複数のスライドを順番に Markdown に変換する
必要なスライドが複数枚あるときは、対象のインデックスをループにまとめて、1 枚ずつ ISlide.SaveToFile() で保存します。
from spire.presentation import *
# Presentation オブジェクトを作成する
presentation = Presentation()
# PowerPoint ファイルを読み込む
presentation.LoadFromFile("報告資料.pptx")
# 1 番目と 2 番目のスライドを順番に出力する
for index in (0, 1):
slide = presentation.Slides[index]
slide.SaveToFile("スライド%d.md" % (index + 1), FileFormat.Markdown)
# リソースを解放する
presentation.Dispose()
このコードでは、出力するインデックスをタプル (0, 1) で指定しています。スライドごとに独立したファイルが保存され、ページマーカーはどのファイルも ==== Page 1 ==== から始まります。

ループの指定を (0, 1, 2) に変えれば 3 スライドまとめて出力することもできます。全体変換とスライド単位の出力は、同じ Presentation オブジェクトから行えます。
まとめ
- 全体変換:
Presentation.SaveToFile()+FileFormat.Markdownで 1 ファイルにまとめられる - スライド単位:
Presentation.Slides[]で取得したスライドをISlide.SaveToFile()で保存できる - ループ:インデックスを指定して複数のスライドを連続出力できる
- 掲載先が Web の場合、出力形式に HTML を選ぶ方法 もあります
FAQ
Microsoft PowerPoint をインストールしておく必要がありますか?
必要ありません。Spire.Presentation for Python が PPT/PPTX のファイル構造を直接解析するため、PowerPoint 本体を呼び出さずに変換できます。
複数の PowerPoint ファイルをまとめて Markdown に変換できますか?
1 つの Presentation オブジェクトは 1 つのファイルを扱います。フォルダー内のファイルをループで回すと、連続して変換できます。
import os
from spire.presentation import *
for name in os.listdir("presentations"):
if name.endswith(".pptx"):
presentation = Presentation()
presentation.LoadFromFile(os.path.join("presentations", name))
base = os.path.splitext(name)[0]
presentation.SaveToFile(os.path.join("markdown", base + ".md"), FileFormat.Markdown)
presentation.Dispose()
スライド単位で出力したとき、ページマーカーはどうなりますか?
どのスライドを保存した場合でも、ファイル内のマーカーは ==== Page 1 ==== から始まります。全体変換のときはスライドの順序に応じて ==== Page 2 ====、==== Page 3 ==== と続きます。
表を含むスライドも Markdown にできますか?
できます。表は | 区切りの Markdown 表として出力され、ヘッダー行の区切り行も含まれます。本文の例では、表の見出し行は太字のまま **地域** のように出力されます。
Markdown 以外の形式での活用は?
Markdown はテキストなので、そのままメモ帳やナレッジツールで確認できます。スライドの本文テキストだけを抽出したい場合は Python で PowerPoint からテキストを抽出する方法 が便利です。
ライセンスの案内
全機能を評価したい場合は、30 日間の無料ライセンスを申請 できます。申請したライセンスを適用すると、作成したドキュメントをそのまま利用できます。






