Home » Python » python-pptxの使い方 » python-pptxでPowerPointのセルを結合する-_Cell.merge()メソッド

python-pptxでPowerPointのセルを結合する-_Cell.merge()メソッド

動作検証バージョン:Windows 11 Home(64-bit)+ Python 3.10.6(64-bit)+ python-pptx 0.6.21

「python ppt table セル結合」
という検索でアクセスがありました。

PowerPointファイル内に存在する表のセルを、Pythonで結合するにはどうすればいいのかを調べていた方による検索です。

[スポンサードリンク]

python-pptxで表のセルを結合するサンプル

先頭スライドの2つ目の図形(プレースホルダー)に、表が存在するプレゼンテーションファイルsamp_org.pptxを、Cドライブのtempフォルダーに用意してから以下のスクリプトを実行してください。

import pptx

prs = pptx.Presentation(r'C:\temp\samp_org.pptx')
tbl = prs.slides[0].shapes[1].table

cel_a = tbl.cell(0, 0)
cel_z = tbl.cell(1, 1)
cel_a.merge(cel_z)

prs.save(r'c:\temp\samp_new.pptx')

1行目×1列目のセルから2行目×2列目までの4個のセルが結合された、samp_new.pptxプレゼンテーションが、Cドライブtempフォルダーに作成されます。

_Cell.merge()メソッドでセルを結合できる

セルの結合を行っているのは、

cel_a.merge(cel_z)

の行です。
_Cellオブジェクトに用意されているmerge()メソッドで、セルを結合できます。

Excel VBAやxlwingsとの違い

Excel VBAの場合、セル範囲を表すRangeオブジェクトのMergeメソッドで、セル範囲が結合されます。
例えば、

Range("A1:B2").Merge

というExcel VBAのコードで、アクティブシートのA1:B2セルが結合されます。

xlwingsの場合も似たようなコードでセルを結合できます。

これに対し、python-pptxを使う場合には、結合する起点であるセルを表す_Cellオブジェクトのmerge()メソッドを使用し、どのセルまで結合するかを引数に指定します。

上記のサンプルの場合、起点となる1行目×1列目のセルがcel_aで、

cel_a = tbl.cell(0, 0)
cel_z = tbl.cell(1, 1)
cel_a.merge(cel_z)

終点となる2行目×2列目のセルがcel_zです。

cel_a = tbl.cell(0, 0)
cel_z = tbl.cell(1, 1)
cel_a.merge(cel_z)

最終更新日時:2023-04-17 11:12

[スポンサードリンク]

Home » Python » python-pptxの使い方 » python-pptxでPowerPointのセルを結合する-_Cell.merge()メソッド

「python-pptxの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.