0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PythonでPowerPointのスライド マスターを作成して適用する方法

Posted at

PowerPointプレゼンテーションを作成する際、スライド マスターを活用することで、背景、レイアウト、フォント、配色などの視覚要素を統一でき、資料全体の品質と作業効率が大幅に向上します。複数の資料を一貫したデザインで作成したい場合、Pythonでスライド マスターを自動設定するのは効率的かつ再利用可能なアプローチです。

本記事では、Pythonを使用してスライド マスターを作成・適用する方法を詳しく解説します。背景画像の設定、レイアウトスタイルの調整、マスターの切り替えなど、主要な操作をコードとともに紹介します。

この方法には Free Spire.Presentation for Python を使用します。PyPIでのインストールコマンド:
pip install spire.presentation


ステップ解説:Pythonでスライド マスターを作成・適用する

以下は、スライド マスターを作成して適用するための手順です。各ステップでは使用する主なクラスやメソッドも併せて説明しています。

ステップ1:プレゼンテーションを作成し、スライドのサイズを設定する

  • クラス:Presentation
  • プロパティ:.SlideSize.Type = SlideSizeType.Screen16x9
ppt = Presentation()
ppt.SlideSize.Type = SlideSizeType.Screen16x9  # ワイド画面(16:9)に設定

ステップ2:複数のスライドを追加する

  • メソッド:.Slides.Append()
for i in range(4):
    ppt.Slides.Append()

ステップ3:スライド マスターを取得・追加する

  • プロパティ:.Masters
  • メソッド:.AppendSlide(master)
first_master = ppt.Masters[0]  # 既定のマスターを取得
ppt.Masters.AppendSlide(first_master)  # 2つ目のマスターを追加
second_master = ppt.Masters[1]

ステップ4:スライド マスターの背景に画像を設定する

  • クラス:RectangleF, ShapeType, FillFormatType
  • メソッド:.AppendEmbedImageByPath(), .SlideBackground.Fill.FillType

以下の例では、ローカル画像をスライドの背景として使用しています:

# 画像ファイルパス
pic1 = "1.jpg"
pic2 = "2.jpg"

# 背景エリアのサイズ指定
rect = RectangleF.FromLTRB(0, 0, ppt.SlideSize.Size.Width, ppt.SlideSize.Size.Height)

# 最初のマスターに背景画像を設定
first_master.SlideBackground.Fill.FillType = FillFormatType.Picture
img1 = first_master.Shapes.AppendEmbedImageByPath(ShapeType.Rectangle, pic1, rect)
first_master.SlideBackground.Fill.PictureFill.Picture.EmbedImage = img1.PictureFill.Picture.EmbedImage

# 2つ目のマスターに背景画像を設定
second_master.SlideBackground.Fill.FillType = FillFormatType.Picture
img2 = second_master.Shapes.AppendEmbedImageByPath(ShapeType.Rectangle, pic2, rect)
second_master.SlideBackground.Fill.PictureFill.Picture.EmbedImage = img2.PictureFill.Picture.EmbedImage

ステップ5:各スライドに異なるマスター レイアウトを適用する

  • プロパティ:.Layouts[index], .Slides[index].Layout
ppt.Slides[0].Layout = first_master.Layouts[1]  # 1枚目は最初のマスターのレイアウトを使用
for i in range(1, ppt.Slides.Count):  # 2枚目以降は2つ目のマスターを適用
    ppt.Slides[i].Layout = second_master.Layouts[8]

ステップ6:ファイルを保存してリソースを解放する

  • メソッド:.SaveToFile(), .Dispose()
ppt.SaveToFile("output/CustomMasterSlides.pptx", FileFormat.Pptx2013)
ppt.Dispose()

完全なサンプルコード

これまでのステップを統合した完全なコードは以下のとおりです。すぐに実行して確認できます。

from spire.presentation.common import *
from spire.presentation import *

ppt = Presentation()
ppt.SlideSize.Type = SlideSizeType.Screen16x9

for i in range(4):
    ppt.Slides.Append()

first_master = ppt.Masters[0]
ppt.Masters.AppendSlide(first_master)
second_master = ppt.Masters[1]

pic1 = "1.jpg"
pic2 = "2.jpg"

rect = RectangleF.FromLTRB(0, 0, ppt.SlideSize.Size.Width, ppt.SlideSize.Size.Height)

first_master.SlideBackground.Fill.FillType = FillFormatType.Picture
img1 = first_master.Shapes.AppendEmbedImageByPath(ShapeType.Rectangle, pic1, rect)
first_master.SlideBackground.Fill.PictureFill.Picture.EmbedImage = img1.PictureFill.Picture.EmbedImage

second_master.SlideBackground.Fill.FillType = FillFormatType.Picture
img2 = second_master.Shapes.AppendEmbedImageByPath(ShapeType.Rectangle, pic2, rect)
second_master.SlideBackground.Fill.PictureFill.Picture.EmbedImage = img2.PictureFill.Picture.EmbedImage

ppt.Slides[0].Layout = first_master.Layouts[1]
for i in range(1, ppt.Slides.Count):
    ppt.Slides[i].Layout = second_master.Layouts[8]

ppt.SaveToFile("output/CustomMasterSlides.pptx", FileFormat.Pptx2013)
ppt.Dispose()

出力結果イメージ
Pythonでスライド マスターを作成・適用


まとめ

本記事では、Spire.Presentation for Python を活用して、スライド マスターの作成、背景画像の設定、異なるレイアウトの適用など、PowerPointを自動で整える方法をご紹介しました。

スライドにヘッダーやページ番号、会社ロゴ、プレースホルダーの追加など、さらに高度なカスタマイズを行いたい場合は、以下の公式ドキュメントもご参照ください:
👉 Spire.Presentation 公式ガイド


---

ご希望があれば、記事のSEO用タイトルやメタディスクリプションも提案できます。必要ですか?
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?