複数の PowerPoint ファイルを 1 つにまとめたい場合、各ファイルを開いてスライドを手動でコピーする方法では、ファイル数やスライド数が増えるほど作業に時間がかかります。
Python を使用すれば、このような PowerPoint の結合作業を自動化できます。本記事では、Spire.Presentation for Python を使用して複数の PowerPoint プレゼンテーションを結合する方法を紹介します。
主に次の 2 つの方法について説明します。
Spire.Presentation for Python のインストール
まず、次のコマンドを実行して Spire.Presentation for Python をインストールします。
pip install Spire.Presentation
または、Spire.Presentation for Python のダウンロードページ から手動でライブラリをインストールすることもできます。
インストールが完了したら、Python プログラムから PowerPoint ファイルを読み込み、スライドの追加や保存などの操作を行えるようになります。
元のデザインを保持して PowerPoint を結合する
異なる PowerPoint ファイルを結合する際に、それぞれのスライドが持つテーマ、背景、レイアウトなどをそのまま保持したい場合があります。
この場合は、Slides.AppendBySlide() メソッドを使用します。
処理の流れは次のとおりです。
- 2 つの
Presentationオブジェクトを作成します。 - 結合元と結合先の PowerPoint ファイルを読み込みます。
- 2 つ目のプレゼンテーション内のスライドを順番に取得します。
AppendBySlide()を使用して、各スライドを 1 つ目のプレゼンテーションに追加します。- 結合後のプレゼンテーションを新しい PPTX ファイルとして保存します。
以下は完全なコード例です。
from spire.presentation import *
from spire.presentation.common import *
# Presentation オブジェクトを作成
pres1 = Presentation()
pres2 = Presentation()
# 2 つの PowerPoint ファイルを読み込む
pres1.LoadFromFile("input_one.pptx")
pres2.LoadFromFile("input_two.pptx")
# 2 つ目のプレゼンテーション内のスライドを順番に処理
for slide in pres2.Slides:
# 元のデザインを保持したまま 1 つ目のプレゼンテーションに追加
pres1.Slides.AppendBySlide(slide)
# 結合後の PowerPoint ファイルを保存
pres1.SaveToFile(
"output/MergePresentations.pptx",
FileFormat.Pptx2016
)
# リソースを解放
pres1.Dispose()
pres2.Dispose()
このコードでは、input_two.pptx に含まれるすべてのスライドを input_one.pptx の末尾に追加しています。
ポイントとなるのは次の処理です。
pres1.Slides.AppendBySlide(slide)
AppendBySlide() を使用すると、追加元スライドのデザインを保持した状態で別のプレゼンテーションへコピーできます。
そのため、複数の部署や担当者が異なるテンプレートを使って作成したプレゼンテーションを、見た目を変更せずに 1 つのファイルへまとめたい場合などに適しています。
出力結果:

デザインを統一して PowerPoint を結合する
一方、複数の PowerPoint を 1 つにまとめるだけでなく、すべてのスライドを同じテーマやデザインに統一したい場合もあります。
その場合は、Slides.AppendByMaster() メソッドを使用できます。
この方法では、追加するスライドに結合先プレゼンテーションのスライドマスターを適用できます。
基本的な手順は次のとおりです。
- 2 つの
Presentationオブジェクトを作成します。 - 2 つの PowerPoint ファイルを読み込みます。
- 2 つ目の PowerPoint 内のスライドを順番に取得します。
AppendByMaster()を使用して、1 つ目の PowerPoint のスライドマスターを適用しながら追加します。- 結果を新しい PowerPoint ファイルとして保存します。
以下はコード例です。
from spire.presentation import *
from spire.presentation.common import *
# Presentation オブジェクトを作成
pres1 = Presentation()
pres2 = Presentation()
# 2 つの PowerPoint ファイルを読み込む
pres1.LoadFromFile("intput_one.pptx")
pres2.LoadFromFile("intput_two.pptx")
# 2 つ目のプレゼンテーション内のスライドを順番に処理
for slide in pres2.Slides:
# 1 つ目のプレゼンテーションのマスターを適用して追加
pres1.Slides.AppendByMaster(
slide,
pres1.Masters[0]
)
# 結合後の PowerPoint ファイルを保存
pres1.SaveToFile(
"output/MergePresentationsDesign.pptx",
FileFormat.Pptx2016
)
# リソースを解放
pres1.Dispose()
pres2.Dispose()
ここで重要なのは次のコードです。
pres1.Slides.AppendByMaster(slide, pres1.Masters[0])
pres1.Masters[0] は、1 つ目のプレゼンテーションに含まれる最初のスライドマスターを表します。
追加元のスライドにこのマスターを適用することで、異なる PowerPoint ファイルから読み込んだスライドでも、結合先プレゼンテーションのデザインに合わせやすくなります。
たとえば、複数のメンバーがそれぞれ作成したプレゼンテーションを、最終的に会社指定のテンプレートへ統一して提出するようなケースで利用できます。
出力結果:

AppendBySlide と AppendByMaster の違い
PowerPoint を結合するときは、最終的な資料のデザイン要件に応じてメソッドを使い分けることが重要です。
| メソッド | 主な用途 | スライドデザイン |
|---|---|---|
AppendBySlide() |
元のスライドをそのまま結合する | 元のデザインを保持 |
AppendByMaster() |
結合後のデザインを統一する | 指定したマスターを適用 |
各ファイルの見た目を残したい場合は AppendBySlide()、プレゼンテーション全体のデザインを統一したい場合は AppendByMaster() が適しています。
まとめ
Python を使用すると、複数の PowerPoint プレゼンテーションを手動でコピーすることなく、自動的に 1 つのファイルへまとめることができます。
Spire.Presentation for Python では、目的に応じて 2 種類の方法を利用できます。
元のスライドデザインを保持したい場合は AppendBySlide() を使用し、結合先のテーマやスライドマスターに合わせたい場合は AppendByMaster() を使用します。
大量の PowerPoint ファイルを定期的に結合する処理や、レポート・会議資料を自動生成するワークフローにも応用できます。
FAQ
Q1. Python で複数の PowerPoint ファイルを一度に結合できますか?
はい、できます。複数の PowerPoint ファイルを順番に読み込み、各ファイルのスライドを AppendBySlide() または AppendByMaster() を使用して 1 つのプレゼンテーションに追加できます。ファイル一覧をループ処理すれば、3 つ以上の PowerPoint ファイルをまとめて結合することも可能です。
Q2. PowerPoint を結合すると元のスライドデザインは保持されますか?
AppendBySlide() を使用すると、元のスライドのテーマ、背景、レイアウトなどを保持したまま別の PowerPoint ファイルへ追加できます。元のデザインを維持して複数のプレゼンテーションをまとめたい場合に適しています。
Q3. 結合した PowerPoint のデザインを統一することはできますか?
はい。AppendByMaster() を使用すると、追加するスライドに結合先プレゼンテーションのスライドマスターを適用できます。複数の PowerPoint ファイルを結合しながら、全体のデザインを統一したい場合に便利です。
Q4. PowerPoint ファイルを結合するために Microsoft PowerPoint のインストールは必要ですか?
いいえ。Spire.Presentation for Python を使用する場合、Microsoft PowerPoint をインストールしていない環境でも PowerPoint ファイルの読み込み、スライドの結合、保存などの処理を実行できます。そのため、サーバー環境や自動処理にも利用できます。
無料トライアルライセンスの取得
Spire.Presentation for Python の機能を評価制限なしで体験したい場合は、30 日間無料トライアルライセンス を申請できます。






