python-pptxライブラリで使用される主要オブジェクト・メソッド・プロパティ

python-pptxライブラリで使用される主要オブジェクト・メソッド・プロパティを、用途別に体系的に解説します。


目次

🔷 1. 基本構成

Presentation(プレゼンテーション)
 ├── slides(スライドのリスト)
 │    └── Slide(各スライド)
 │         ├── shapes(図形:タイトル、テキストボックス、画像など)
 │         ├── placeholders(プレースホルダー)
 │         └── slide_layout(レイアウト)
 └── slide_layouts(レイアウトテンプレートのリスト)

🔸 2. 主なオブジェクトとメソッド・プロパティ

🧾 Presentation オブジェクト

  • prs = Presentation()
    新しいPowerPointファイルを作成。
  • prs = Presentation("template.pptx")
    既存のPowerPointファイルを読み込み。
  • prs.slides
    スライドのリスト(Slide オブジェクト)。
  • prs.slide_layouts
    レイアウトのリスト(0:タイトル、1:タイトルと本文…)。
  • prs.save("filename.pptx")
    ファイル保存。

📄 Slide オブジェクト

  • slide = prs.slides.add_slide(layout)
    レイアウトを指定してスライド追加。
  • slide.shapes
    スライド内の図形(タイトル、テキスト、画像など)へのアクセス。
  • slide.placeholders
    レイアウトに定義されたプレースホルダー(タイトル、本文など)。

🧩 Shape オブジェクト(図形全般)

  • shape.text
    テキスト図形のテキストにアクセス/設定。
  • shape.name
    図形の名前。
  • shape.shape_type
    図形の種類(TextBox, Picture など)。
  • shape.text_frame
    テキスト図形の中身全体(段落、文字列)。

✏️ TextFrameParagraph

  • shape.text_frame.text = "Hello"
    テキストを丸ごと設定。
  • text_frame.paragraphs
    段落のリスト。
  • paragraph.runs
    文字列単位のリスト(フォント設定が可能)。
  • paragraph.alignment
    左右中央揃え(PP_ALIGN.CENTER など)。

🖼️ 画像の追加

slide.shapes.add_picture("image.jpg", left, top, width, height)
  • 単位は Inches()Cm()from pptx.util import Inches

🔹 3. 使用例まとめ

タイトルスライドを作る

from pptx import Presentation
prs = Presentation()
layout = prs.slide_layouts[0]  # タイトルスライド
slide = prs.slides.add_slide(layout)

# タイトルとサブタイトル
slide.shapes.title.text = "こんにちは"
slide.placeholders[1].text = "python-pptxから作成"

テキストボックス追加

from pptx.util import Inches
txBox = slide.shapes.add_textbox(Inches(1), Inches(2), Inches(4), Inches(1))
frame = txBox.text_frame
frame.text = "これはテキストボックスです"

段落や書式

p = frame.add_paragraph()
p.text = "新しい段落"
p.font.bold = True
p.font.size = Pt(20)

🧠 補足:よく使うユーティリティ

from pptx.util import Inches, Pt
from pptx.enum.text import PP_ALIGN

✅ まとめ表(主要メンバー)

オブジェクトメソッド・プロパティ説明
Presentation.slides, .slide_layouts, .save()スライド全体・保存など
Slide.shapes, .placeholdersスライド内の要素アクセス
Shape.text, .name, .text_frame図形のテキストや名前など
TextFrame.text, .paragraphsテキスト内容・段落
Paragraph.runs, .alignment段落ごとの書式設定
Run.text, .font.bold, .font.sizeフォント書式(太字・サイズ)

よかったらシェアしてね!
目次