「python win32com パワポ テキスト」
という検索キーワードでアクセスがありました。
WindowsのCOMアプリケーションソフトを操作するための、Pythonの外部ライブラリpywin32を使って、PowerPointファイルから文字列を取得するにはどのようなコードを書けばいいのかを、探していた方による検索でしょうか。
PowerPointファイルから文字列を取得するサンプル
PowerPointを起動し、先頭スライドのプレースホルダー等に文字列を入力しておいてから、以下のスクリプトを実行してみてください。
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
- Newer:Pythonで九九の表を作る
- Older:Pythonで偶数の和を計算する
Home » Python » pywin32・win32comの使い方 » pywin32・win32com.clientでPowerPointファイルから文字列を取得する