Pythonでパワポ資料(スライド)作成を自動化しよう!

生成AIの進化で、資料作成はどんどん簡単になってきています。けれど、Pythonを学ぶなら、自分のコードで「資料が完成する」プロセスを体験することが、なによりの学びになります。


このコラムでは、Pythonを用いて、Microsoft-Officeの「PowerPoint」を自動で生成する方法を解説します。できるだけシンプルなコード例も紹介します。

はじめての人でも、「動かしてみたい」と思えるような内容になっていますので、ぜひ手を動かしながら読み進めてみてください。

このサイトは、Pythonや生成AIなどを学べるオンラインプログラミングスクール AI Academy Bootcampが運営しています。

python-pptxとは

python-pptxとは、プレゼンテーション形式ファイル(.pptx)を作成できるpythonライブラリです。

インストール

pipを用いてインストールできます。

pip install python-pptx

Jupyter Notebookで実行する場合は、先頭に「!」をつけて実行ください。

!pip install python-pptx

python-pptxでパワポスライドを自動で作成してみよう

コードの詳細は割愛しますが、pptxから「Presentation」クラスを読み込み、このクラスから生成されたオブジェクトから、様々なメソッドを適用していきます。

from pptx import Presentation
from pptx.util import Inches, Pt, Cm

import datetime


now = datetime.datetime.now() # 現在時刻の取得
today = now.strftime('%Y年%m月%d日') # 現在時刻を年月曜日で表示

save_name = 'test.pptx' # 保存用のパワポのファイル名
prs = Presentation() # Presentationクラスをインスタンス化

# 1枚目
title_slide_layout = prs.slide_layouts[0]
slide = prs.slides.add_slide(title_slide_layout)
title = slide.shapes.title
subtitle = slide.placeholders[1]
title.text = "Pythonでパワポを作成してみた"
subtitle.text = today

# 2枚目
title_slide_layout = prs.slide_layouts[1]
slide = prs.slides.add_slide(title_slide_layout)
title = slide.shapes.title
subtitle = slide.placeholders[1]
title.text = "目次"
body_shape = slide.placeholders[1]

p = body_shape.text_frame.add_paragraph()
p.text = '1. pythonでパワポを作るために'
p.level = 1
p = body_shape.text_frame.add_paragraph()
p.text = '2. 必要なライブラリのインストール'
p.level = 1
p = body_shape.text_frame.add_paragraph()
p.text = '3. 動作確認'
p.level = 1
p = body_shape.text_frame.add_paragraph()
p.text = '4. まとめ'
p.level = 1

# 3枚目
title_slide_layout = prs.slide_layouts[1]
slide = prs.slides.add_slide(title_slide_layout)
title = slide.shapes.title
title.text = "pythonでパワポを作るために"

body_shape = slide.placeholders[1]
p = body_shape.text_frame.add_paragraph()
p.text = '1. python-pptxを使えば実現可能!'
p.level = 1

# 4枚目
title_slide_layout = prs.slide_layouts[1]
slide = prs.slides.add_slide(title_slide_layout)
title = slide.shapes.title
subtitle = slide.placeholders[1]
title.text = "2. 必要なライブラリのインストール"
body_shape = slide.placeholders[1]
p = body_shape.text_frame.add_paragraph()
p.text = '次のコマンドをターミナルにて実行'
# p.level = 2
p = body_shape.text_frame.add_paragraph()
p.text = 'pip install python-pptx'
p.level = 1

# 5枚目
title_slide_layout = prs.slide_layouts[1]
slide = prs.slides.add_slide(title_slide_layout)
title = slide.shapes.title
title.text = "3. 動作確認"
body_shape = slide.placeholders[1]

p = body_shape.text_frame.add_paragraph()
p.text = "プログラムを動かしてみよう!"
p.level = 1
p.font.bold = True

# 6枚目
title_slide_layout = prs.slide_layouts[1]
slide = prs.slides.add_slide(title_slide_layout)
title = slide.shapes.title
subtitle = slide.placeholders[1]
title.text = "4. まとめ"
body_shape = slide.placeholders[1]
subtitle.text = "python-pptxを使えば、簡単にパワポが作れちゃう!!"

prs.save(save_name)
print("ファイルの書き出し完了しました")

実行すると、「test.pptx」という名称のパワポファイルが作成されます。

(写真は、Mac OS環境のデスクトップに保存された場合の写真)

test.pptxを起動すると、以下のように中身が作成されていることが確認できます。

【無料動画:倍速で学ぶ!生成AIを活用したプログラミング勉強法(短縮版)】

生成AIを活用して効率的にプログラミングを学ぶ方法を解説しています。生成AIの基本的な仕組みや効果的な活用法、注意点についても詳しく説明。勉強法とともに生成AIそのものについても学べる内容となっています。ぜひご覧ください! 

全編は、AI Academy公式LINEで配信中です。

スライドに画像を差し込む

add_picture()を用いることで、画像をスライドに追加することが出来ます。

add_picture()関数には、3つ引数を渡します。

第一引数には、スライドに表示させたい(埋め込みたい)画像のパスを渡します。

第二引数には、width、第三引数にはheightを渡せます。両方がNoneの場合、そのままの画像サイズが用いられます。

title_slide_layout = prs.slide_layouts[1]
slide = prs.slides.add_slide(title_slide_layout)
title = slide.shapes.title
title.text = "7. 画像を追加する"
# 画像をスライドに追加
img_path = "sample.png"
slide.shapes.add_picture(img_path, Inches(1.5), Inches(2))

prs.save(save_name)
print("ファイルの書き出し完了しました")

まとめ

今では、生成AIを使えばスライド資料を数分で作ることもできます。
しかし、Pythonの学習者にとっては、「自分のコードで資料を生み出す」体験こそが、スキルとしての定着につながります。

本記事で紹介した python-pptx を使えば、構造化された資料を、意図通りに自動生成できるようになります。
スライドを1枚追加できたら、画像を入れてみる、ループで繰り返し生成してみるなど、自分の業務やアイデアに合わせてどんどん応用していきましょう。

Pythonの楽しさは、「自分のアイデアが形になる」瞬間にあります。
次は、あなたのオリジナル資料を自動生成するプログラムに挑戦してみてください!

✨LINE友だち限定:AI人材コース 受講お申込み受付中!

AI Academy Bootcamp LINE公式 では、AIリテラシーからPython、データ分析、Web開発まで学べる「AI人材コース」をご用意!約50時間の動画と500種類以上のテキストが見放題の充実の内容です。お得な割引クーポンもプレゼント!

単独で学ぶより、全コースを一気に学ぶことで得られる「学習シナジー効果」が特長。
基礎から応用まで、データ分析とAI開発のスキルを効率よく身につけられます。

✨生成AIコース 受講お申込み受付中!

生成AIの概要やChatGPTの基礎操作、プロンプトエンジニアリングの基礎から実践まで学べます。演習課題を通じて、ご自身の業務に適したプロンプトやツールを作成し、生成AIを業務に活用できるスキルが身につきます。

受講特典:受講期間中、59種類の充実したAI Academyのオリジナルテキストを使いながら学んでいただけます。 例)「機械学習に必要な数学編」「機械学習アルゴリズムの理論と実装編」「自然言語処理編」「プロンプトエンジニアリング入門編」など