python PR

pythonでパワポ操作〜python-pptxの導入からスライド作成〜【サンプルコードあり】

python python-pptx
記事内に商品プロモーションを含む場合があります

pythonの得意なことといえば、事務作業の自動化が挙げられます

その証拠に、python×excelといった書籍は多く販売されています

Excel×Python最速仕事術

Excel×Python逆引きコードレシピ126

できる 仕事がはかどるPython&Excel自動処理 全部入り。 (できる全部入り。)

しかし、python×パワポという書籍はまだありません

そこで、今回はpythonでパワポを操作する方法について解説していきたいと思います

パワポやエクセルなどは、会社員であれば、必ず使用するソフトです

これらを自動化することができれば、作業時間をかなり短縮することができます

この記事で学べること
pythonでパワポを操作する方法がわかる
python-pptxの導入方法と使い方がわかる
pythonからスライド作成ができる

pythonでパワポ操作〜python-pptxの導入〜

python パワポ操作

pythonでパワポを操作するには、python-pptxという外部ライブラリが必要になります

外部ライブラリがいまいちピンとこない方は、こちらの記事に目を通しておきましょう

pythonの外部ライブラリとは?

python-pptxを使用することで、PowerPointを起動せずとも、スライド作成をすることができます

python-pptxでできること

PowerPointを使って操作することは、python-pptxを使ってほぼ操作することができます

例えば、

  • スライド作成
  • スライドの追加・編集
  • テキストボックスの追加・編集
  • オートシェイプの作成と編集
  • グラフ・表・画像の挿入

このブログでは、上記の5種類を一通りマスターできるようにしていきます

python-pptxのインストール

まずはpython-pptxをインストールしていきます

macではターミナル、windowsではコマンドプロンプトで以下のように入力します

pip install python-pptx

これでインストールは終わりですが、動作確認をしておきましょう

from pptx import Presentation
prs=Presentation()

spyder上で上記を入力して、実行します

jupyternotebookを使っている方は、そちらに入力していきます

これで、エラーが出なければOKです

pythonでパワポ操作〜python-pptxでスライド作成〜

python パワポ操作2

インストールが完了したので、早速スライドを作成していきたいと思います

スライドを作成する上で、注意しておきたいのが、レイアウト指定です

python-pptxではレイアウトを番号で指定していきますが、番号は以下のようになっています

  • 0:Title Slide
  • 1:Title and Content
  • 2:Section Header
  • 3:Two Content
  • 4:Comparison
  • 5:Title Only
  • 6:Blank
  • 7:Content with Caption
  • 8:Picture with Caption
  • 9:Title and Vertical Text
  • 10:Vertical Title and Text
python-pptxレイアウト

左上から「0」スタートになります

レイアウトは全部で11種類あるので、0〜10で指定をしていきます

from pptx import Presentation
#Presentationオブジェクトの取得
prs=Presentation()

#1ページ目(「タイトル スライド」のレイアウトを指定)
slide_layout_0 = prs.slide_layouts[0]
slide_1 = prs.slides.add_slide(slide_layout_0)

#PowerPointを保存
prs.save("create_powerpnt.pptx")

それ以外のスライドレイアウトは以下のように指定することができます

from pptx import Presentation
prs=Presentation()

#1ページ目(「タイトル スライド」のレイアウトを指定)
slide_layout_0 = prs.slide_layouts[0]
slide_1 = prs.slides.add_slide(slide_layout_0)

slide_layout_1 = prs.slide_layouts
slide_2 = prs.slides.add_slide(slide_layout_1)

slide_layout_2 = prs.slide_layouts
slide_3 = prs.slides.add_slide(slide_layout_2)

slide_layout_3 = prs.slide_layouts
slide_4 = prs.slides.add_slide(slide_layout_3)

slide_layout_4 = prs.slide_layouts
slide_5 = prs.slides.add_slide(slide_layout_4)

slide_layout_5 = prs.slide_layouts[5]
slide_6 = prs.slides.add_slide(slide_layout_5)

slide_layout_6 = prs.slide_layouts[6]
slide_7 = prs.slides.add_slide(slide_layout_6)

slide_layout_7 = prs.slide_layouts[7]
slide_8 = prs.slides.add_slide(slide_layout_7)

slide_layout_8 = prs.slide_layouts[8]
slide_9 = prs.slides.add_slide(slide_layout_8)

slide_layout_9 = prs.slide_layouts[9]
slide_10 = prs.slides.add_slide(slide_layout_9)

slide_layout_10 = prs.slide_layouts[10]
slide_11 = prs.slides.add_slide(slide_layout_10)
#PowerPointを保存
prs.save("create_powerpnt.pptx")

新しいスライドを追加する際には、

#*には0〜10の数値を入力
prs.slides.add_slide(slide_layout*)

と指定してあげます

プレースホルダーの説明

プレースホルダーというのは、スライドの中の個々のものを指しています

プレスーホルダー

プレースホルダーは全部で19種類用意されています

プレースホルダー

PowerPoint自体には、プレースホルダーは31種類の組み合わせがある、とも言われています

パワーポイントのプレースホルダーとは?

テキストのプレースホルダーを編集する場合には、

from pptx import Presentation
prs=Presentation()

#1ページ目(「タイトル スライド」のレイアウトを指定)
slide_layout_0 = prs.slide_layouts[0]
slide_1 = prs.slides.add_slide(slide_layout_0)

#テキストの編集
title=slide_1.placeholders[0]
title.text="タイトルの編集"
subtitle=slide_1.placeholders
subtitle.text="サブタイトル"
#PowerPointを保存
prs.save("powerpnt.pptx")

プレースホルダーの数値は以下のように設定されています

プレースホルダー1

テキストは当然ですが、表や画像、図形用のプレースホルダーも用意されています

既存のプレゼンテーションを読み込む

既存のプレゼンテーションを読み込む場合には、

from pptx import Presentation
prs=Presentation('.pptx')

上記のように引数を、既存のパワーポイントファイルのパス名で指定することで、読み込むことができます

既存のスライドを読み込む

既存のスライドを読み込む場合には、

from pptx import Presentation
prs=Presentation('.pptx')
#*には0からの数値を入力
prs.slides[*]

と指定することで既存のスライドを読み込むことができます

さらにテキストを編集する場合には、

from pptx import Presentation
prs=Presentation('.pptx')

#1ページ目(「タイトル スライド」のレイアウトを指定)
slide_layout_0 = prs.slide_layouts[0]
slide_1 = prs.slides.add_slide(slide_layout_0)
old_sld0_layout0=prs.slides[0]

#テキストの編集
title=old_sld0_layout0.placeholders[0]
title.text="既存スライドタイトルの編集"
subtitle=slide_1.placeholders
subtitle.text="既存スライド再読み込み"
#PowerPointを保存
prs.save("powerpnt.pptx")

とすることで、既存スライドのテキストを編集することができます

この状態で保存をすると、上書き保存になりますが、上書き保存時にアラートは出ないので、気をつけておく必要があります

これで新規・既存PowerPointファイルにスライドを追加できるようになりました

次回はスライドの編集について深掘りしていきたいと思います

おすすめプログラミングスクール

DMMWEBCAMP
  • WEBCAMPはコスパ最強
  • WEBCAMPは初心者に優しい充実したサポート付き
  • 16週間プランを選択して、返金してもらおう
WEBCAMPの公式ページはこちら WEBCAMPの口コミ・評価はこちら
テックアカデミー  
  • テックアカデミーは費用対効果抜群
  • テックアカデミーのサポートは個人の能力に応じつつ、python初心者に優しい
  • まずは無料体験でテックアカデミーを知ってから受講を決める
テックアカデミーの公式ページはこちら テックアカデミーの口コミ・評価はこちら
キカガク
  • 多種多様なスキルコース
  • 初心者から専門家まで対象
  • 給付金利用で費用を抑えられる
キカガクの公式ページはこちら キカガクの口コミ・評価はこちら
Aidemy Premium
  • 完全オンラインで、時間や場所に縛られず学習したい
  • マンツーマン学習サポートにより実践に近い経験をしたい
  • 未経験から機械学習エンジニアになりたい
Aidemy Premiumの公式ページはこちら Aidemy Premiumの口コミ・評価はこちら
My Agile Privacy
This website uses technical and profiling cookies. Clicking on "Accept" authorises all profiling cookies. Clicking on "Refuse" or the X will refuse all profiling cookies. By clicking on "Customise" you can select which profiling cookies to activate.