サイトアイコン sciencompass

Pythonでパワーポイントを自動生成する方法~プログラミング初心者でもできる!~

Unsplash / Pixabay

仕事で何かと使うことの多いパワーポイント、でも意外とスライドを作るのって手間がかかりますよね。
ルーチンの資料作りは自動化したいということで、pythonでパワーポイントを自動生成する方法をまとめてみました。

Pythonのpython-pptxモジュールを使用して、複数の画像ファイルをPowerPointファイルに貼り付けるプログラムを作ってみます。プログラムは以下の手順に従います。

  1. pptxファイルを作成します。
  2. 画像ファイルをpptxファイルに貼り付けます。

from pptx import Presentation
from pptx.util import Inches

# pptxファイルを作成する
prs = Presentation()
slide_layout = prs.slide_layouts[6]

# 画像ファイルをpptxファイルに貼り付ける
for i in range(1, 4):
  slide = prs.slides.add_slide(slide_layout)
  img_path = f'img_{i}.png'
  left = Inches(1)
  top = Inches(1)
  width = Inches(5)
  slide.shapes.add_picture(img_path, left, top, width)

# pptxファイルを保存する
prs.save('example.pptx')

上記の例では、python-pptxモジュールを使用して、Presentation()オブジェクトを作成し、add_slide()メソッドで新しいスライドを作成しています。
次に、add_picture()メソッドを使用して、指定された画像ファイルをスライドに貼り付けています。
最後に、save()メソッドを使用して、pptxファイルを保存しています。
これで画像ファイルを1ページに一つ貼り付けるプログラムが完成しました。

ここで、slide_layoutsはスライドのレイアウトを指定しており、番号とレイアウトは次のようになっています。

これらの番号に対応するスライドのレイアウトは、PowerPointのスライドマスターから確認することができます。

また、一つのスライドに複数の画像を貼り付ける場合、以下のようにSlideオブジェクトのshapes属性を用いて、各画像を配置します。


slide = prs.slides.add_slide(prs.slide_layouts[0]) # スライドを追加

pic1 = slide.shapes.add_picture('image1.jpg', x, y, width, height) # 画像1を追加
pic2 = slide.shapes.add_picture('image2.jpg', x, y, width, height) # 画像2を追加
...

ここで、xywidthheightはそれぞれ、画像の左上隅のx座標、y座標、幅、高さを指定します。例えば、以下のようにして複数の画像を追加することができます。


slide = prs.slides.add_slide(prs.slide_layouts[0]) # スライドを追加

pic1 = slide.shapes.add_picture('image1.jpg', 0, 0, 500, 500) # 画像1を追加
pic2 = slide.shapes.add_picture('image2.jpg', 550, 0, 500, 500) # 画像2を追加
pic3 = slide.shapes.add_picture('image3.jpg', 0, 550, 500, 500) # 画像3を追加
pic4 = slide.shapes.add_picture('image4.jpg', 550, 550, 500, 500) # 画像4を追加

モバイルバージョンを終了