PythonでPowerPointファイルを自動作成する方法!python-pptxの基本を徹底解説
はじめに
誰もが一度はPowerPointのプレゼンテーション資料を作成した経験があるのではないでしょうか。多くの場合、Microsoft PowerPointやGoogleスライドといったGUIツールを使うことが多いでしょう。
しかし、ライセンスを持っていなかったり、インターネット環境にアクセスできなかったりすることもあります。あるいは、「プログラマーらしく」コードで自動生成したいと考える方もいるはずです。
ご安心ください。そんなときこそPythonの出番です!
この記事では、Pythonを使ってPowerPointファイルを作成し、コンテンツを追加する方法を解説します。それでは早速始めましょう!
準備:python-pptxのインストール
本チュートリアルではpython-pptxパッケージを使用します。このパッケージはPython 2.6から3.6までの幅広いバージョンに対応しています。
まず、お使いの環境に適切なバージョンのPythonがインストールされていることを確認してください。
次に、ターミナル(またはコマンドプロンプト)を開き、以下のコマンドを実行します。
pip install python-pptx
モジュールのインストールが完了すれば、コーディングを開始する準備は整いました。
モジュールのインポート
本題に入る前に、パッケージの各機能を利用できるよう、必要なモジュールをインポートしておきましょう。
まず、PowerPointの作成に必要なメソッドをすべて備えたPresentationクラスをインポートします。
from pptx import Presentation
これでプレゼンテーションを作成する準備が整いました。
プレゼンテーションの作成
それでは、Presentationクラスのオブジェクトを生成し、さまざまなメソッドにアクセスできるようにしましょう。
X = Presentation()
次に、プレゼンテーションに使用するレイアウトを選択します。

ご覧のとおり、9種類のレイアウトが用意されています。pptxモジュールでは、各レイアウトに0から8までの番号が割り当てられています。「タイトルスライド」が0、「図とキャプション」が8に対応します。
まずはタイトルスライドを追加してみましょう。
Layout = X.slide_layouts[0]
first_slide = X.slides.add_slide(Layout) # 最初のスライドを追加
これでレイアウトを作成し、プレゼンテーションにスライドを追加できました。
続いて、1枚目のスライドにコンテンツを追加していきます。
first_slide.shapes.title.text = "Creating a powerpoint using Python"
first_slide.placeholders[1].text = "Created by Tutorialpoints"
上記のコードでは、まず「first_slide」にタイトルを設定し、プレースホルダーを使ってサブタイトルを追加しています。
次に、saveメソッドでプレゼンテーションを保存します。
X.save("First_presentation.pptx")プログラムを実行すると、プログラムファイルと同じディレクトリにPowerPointプレゼンテーションが保存されます。
実行結果

これでPowerPointプレゼンテーションの作成に成功しました。
2枚目のスライドの作成とコンテンツの追加
まず、コンテンツを追加するために必要なメソッドを追加でインポートします。
from pptx import Presentation
from pptx.util import Inches
それでは、2枚目のスライドを作成して追加しましょう。
Second_Layout = X.slide_layouts[5]
second_slide = X.slides.add_slide(Second_Layout)
次のスライドにタイトルを設定します。
second_slide.shapes.title.text = "Second slide"
続いて、テキストボックスを作成し、目的に合わせてレイアウトを調整します。
位置を指定し、サイズをインチ単位で設定してみましょう。
textbox = second_slide.shapes.add_textbox(Inches(3), Inches(1.5),Inches(3), Inches(1))
上記のコードでは、左端から3インチ、上端から1.5インチの位置に、幅3インチ・高さ1インチのテキストボックスを配置しています。
レイアウトと位置が決まったら、コンテンツを格納するためのテキストフレームを作成します。
textframe = textbox.text_frame
次に、段落としてコンテンツを追加します。
paragraph = textframe.add_paragraph()
paragraph.text = "This is a paragraph in the second slide!"
最後に、saveメソッドでもう一度プレゼンテーションを保存します。
X.save("First_presentation.pptx")実行結果

サンプルコード全体
# python-pptxパッケージを使用したPowerPointプレゼンテーションの作成
from pptx import Presentation
from pptx.util import Inches
X = Presentation()
Layout = X.slide_layouts[0]
first_slide = X.slides.add_slide(Layout)
first_slide.shapes.title.text = "Creating a powerpoint using Python"
first_slide.placeholders[1].text = "Created by Tutorialpoints"
X.save("First_presentation.pptx")
Second_Layout = X.slide_layouts[5]
second_slide = X.slides.add_slide(Second_Layout)
second_slide.shapes.title.text = "Second slide"
textbox = second_slide.shapes.add_textbox(Inches(3), Inches(1.5),Inches(3), Inches(1))
textframe = textbox.text_frame
paragraph = textframe.add_paragraph()
paragraph.text = "This is a paragraph in the second slide!"
X.save("First_presentation.pptx")
まとめ
以上で完成です!これであなたもPythonを使って独自のプレゼンテーションを作成できるようになりました。
pptxパッケージにはさらに多くの機能が備わっており、GUIツールで操作するのと同じように、プレゼンテーションを細部まで自由にカスタマイズすることが可能です。
画像の挿入、グラフの作成、統計データの表示など、さまざまな表現ができます。
より詳しい構文や機能については、python-pptxの公式ドキュメントを参照してみてください。
-
PythonのMatplotlibでヒストグラムを作成する方法をわかりやすく解説
Matplotlibは、データ可視化のために広く使われている人気のPythonライブラリです。データの可視化は非常に重要なステップです。数値を一つずつ確認したり複雑な計算を行ったりしなくても、データ全体の傾向や特徴を直感的に把握できるようになるからです。また、定量的な洞察を効果的に伝える手段としても優れています。MatplotlibとはMatplotlibは、データをもとに2次元のプロット(グラフ)を作成するためのライブラリです。オブジェクト指向のAPIを備えており、作成したグラフをPythonアプリケーションに組み込むことも簡単に行えます。IPythonシェル、Jupyter Noteboo
-
Pythonとtkinterでストップウォッチを作成する方法【サンプルコード付き】
ストップウォッチは、ある出来事から次の出来事までの時間間隔を測定するための道具で、一般的に数秒〜数分程度の計測に使用されます。スポーツのタイム計測をはじめ、産業現場で熱流量や電流の変化を測るなど、幅広い場面で活用されています。 Pythonでは標準ライブラリのtkinterを使えば、GUIを備えたストップウォッチを簡単に自作できます。本記事で紹介するのは、スタート(Start)・ストップ(Stop)・リセット(Reset)の3つの操作ボタンを備えたウィンドウアプリケーションです。 ポイントは「after()」メソッド このプログラムの核となるのが、tkinterのウィジェットが持つafter