Home » Python » pywin32・win32comの使い方 » pywin32・win32com.clientでPowerPointファイルから文字列を取得する

pywin32・win32com.clientでPowerPointファイルから文字列を取得する

動作検証バージョン:64bit Windows 10 Pro + 32bit PowerPoint(バージョン2009 ビルド13231.20390 Microsoft Store)+ Python 3.8.3 + pywin32 228

「python win32com パワポ テキスト」
という検索キーワードでアクセスがありました。

WindowsのCOMアプリケーションソフトを操作するための、Pythonの外部ライブラリpywin32を使って、PowerPointファイルから文字列を取得するにはどのようなコードを書けばいいのかを、探していた方による検索でしょうか。

PowerPointファイルから文字列を取得するサンプル

PowerPointを起動し、先頭スライドのプレースホルダー等に文字列を入力しておいてから、以下のスクリプトを実行してみてください。

import win32com.client

pp_app = win32com.client.GetObject(Class='PowerPoint.Application')

sld = pp_app.ActivePresentation.Slides(1)
for shp in sld.shapes:
    print(shp.TextFrame.TextRange.Text)

サンプルで行っている処理について

import文直後の、
  pp_app = win32com.client.GetObject(Class='PowerPoint.Application')
は、起動済みのPowerPoint.Applicationオブジェクトを取得するコードです。

起動済みのExcel.Applicationオブジェクトを取得する場合、右辺を、
  win32com.client.GetObject(Class='Excel.Application')
とします。このwin32com.client.GetObject関数の引数Classに指定する文字列を「PowerPoint.Application」とすれば、起動済みのPowerPoint.Applicationオブジェクトを取得できます。

PowerPoint.Applicationを取得した後のコード

sld = pp_app.ActivePresentation.Slides(1)
for shp in sld.shapes:
    print(shp.TextFrame.TextRange.Text)

は、PowerPoint VBAのコードとよく似ています。PowerPoint VBAでは、イミディエイトウィンドウに先頭スライドの文字列を出力するのに、

Dim sld As Slide
Set sld = pp_app.ActivePresentation.Slides(1)
Dim shp As Shape
For Each shp in sld.Shapes
  Debug.Print shp.TextFrame.TextRange.Text
Next

のように書きます。

pywin32を使ったコードで利用しているオブジェクトは、このPowerPoint VBAで利用しているのと実は同じです。PowerPointライブラリのオブジェクトを、pywin32ライブラリを使ってPythonで操作するか、VBAで操作するかの違いです。

pywin32でPowerPointを操作したいのなら

もしも、
「python win32com パワポ テキスト」
と検索なさった方が、本気でpywin32を使ってPowerPointを使って業務の自動化を行いたいのなら、拙著『いちばんやさしいPowerPoint VBAの教本』等も参考にしていただきつつ、まずはPowerPoint VBAの学習をするほうが早いはずです。PowerPoint VBAであれば、コード入力時に補完機能やヒント表示も使えますし、オブジェクトモデルを理解するのに必須のオブジェクトブラウザーも調べやすいですから。

PowerPointファイルから文字列を取得するだけならば、このサイト『インストラクターのネタ帳』でもいくつか記事を公開している、python-pptxを利用するほうが、学習コストは低いと私は考えています。

最終更新日時:2023-04-25 15:14

[スポンサードリンク]

Home » Python » pywin32・win32comの使い方 » pywin32・win32com.clientでPowerPointファイルから文字列を取得する

「pywin32・win32comの使い方」の記事一覧

検索


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

.