初めに
唐突ですがChatGPTでPowerPointを作りたい!と思いませんか?
私はサークルの新入生向けの講座スライドを作る際にChatGPTに大枠を作ってほしいと今日思い。思い立ったが吉日、ググって作ってみようとしましたがマークダウンにしてみたり、HTMLにして変換しているもので、求めていたものは出てきませんでした。そこでChatGPTに聞いたところ、"python-pptx"を使ってみると出来るよと言われました。
以下に早速使い方を書いていきたいと思います。
導入
pythonをインストールしていることは前提として話を進めていきます。インストールしていない人は「python インストール」でググってください。
python2を使用している場合はコードの初めに以下の一文を追加してください。
# -*- coding: utf-8 -*-
python3使用している場合はpython-pptxはpython3.10以上と互換性が無いそうなのでpython3.9以下を使用してください。
今回のメインとなるpython-pptxをインストールします。
pip install python-pptx
python-pptxを使ってみる
下記がサンプルコードです。改造して使ってみてください。
画像のようなスライドができます。
from pptx import Presentation
from pptx.util import Inches
# 新しいプレゼンテーションを作成する
presentation = Presentation()
# タイトルスライドのレイアウトを選択
title_slide_layout = presentation.slide_layouts[0]
# 新しいスライドを追加
slide = presentation.slides.add_slide(title_slide_layout)
# タイトルとサブタイトルのプレースホルダーを取得
title = slide.shapes.title
subtitle = slide.placeholders[1]
# タイトルとサブタイトルにテキストを設定
title.text = "Hello, World!"
subtitle.text = "This is an example PowerPoint presentation created using python-pptx."
# 新しいスライドを追加
bullet_slide_layout = presentation.slide_layouts[1]
slide2 = presentation.slides.add_slide(bullet_slide_layout)
# タイトルとポイントのプレースホルダーを取得
title2 = slide2.shapes.title
points = slide2.placeholders[1].text_frame
# タイトルとポイントにテキストを設定
title2.text = "Important Points"
point1 = points.add_paragraph()
point1.text = "This is the first point"
point2 = points.add_paragraph()
point2.text = "This is the second point"
point3 = points.add_paragraph()
point3.text = "This is the third point"
# プレゼンテーションをファイルに保存
presentation.save('example_presentation.pptx')
私の説明で足りない部分は下記リンクのドキュメントを参考にしてみてください。
ChatGPTにコードを生成してもらう
さて、本題はpython-pptxでスライドを作る事ではありませんでしたね。早速ChatGPTに聞いてコードを生成してもらいます。今回はGPT3.5(default)で検証してみます。
Pythonを初心者に教えます。教える内容を考えてください。
また作成するスライドの内容を考えてください、
その内容をpython-pptxでスライドを作ってください
以下のように出力されました。
まだ、色々改善する箇所はありそうですが大枠を作る分には十分使えると思います。