PyWin32でExcel / Word / PowerPointのファイルを開く

Python小ネタ
この記事は約5分で読めます。

想定する読者

ライブラリPyWin32に対して、どのメソッドを使ってExcel / Word / PowerPointのファイルを操作すれば良いかの取っ掛かりが難しいと感じている方

各ファイルの開き方

概要

ライブラリPyWin32を使ってExcel / Word / PowerPointのファイルを開く手順の概要は下記です。

  1. win32.com.client.Dispatchメソッドで、対応するOfficeのアプリケーションを開きます。
  2. 1.で開いたアプリケーションを使って、Officeファイルを開きます。どんなメソッドが使えるかは「Office VBAリファレンス」を見ると分かります。
Office Visual Basic for Applications (VBA) リファレンス
この記事の内容は、VBA について学ぶことを希望したり、Office をカスタマイズする作業にプログラミングを役立てる方法について詳しく知ることを望む、経験ある Office ユーザーのために書かれています。

Excelファイル

  1. win32com.client.Dispatch(“Excel.Application”)を呼び、Excelアプリケーションを開きます。
  2. ExcelアプリケーションのWorkbooksプロパティを取得します。
  3. WorkbooksプロパティのOpenメソッドでExcelファイルを開きます。
import win32com.client

excel = win32com.client.Dispatch("Excel.Application")
excel.Visible = True

try:
    document = excel.Workbooks.Open("[ファイル名]")
    # 処理を書く
finally:
    document.Close()
    excel.Quit()
Application.Workbooks プロパティ (Excel)
Office VBA reference topic
Workbooks.Open メソッド (Excel)
Office VBA reference topic
4行目の「excel.Visible = True」を削除すると、プログラム実行中のExcelの起動が画面上で見えなくなります。

Wordファイル

  1. win32com.client.Dispatch(“Word.Application”)を呼び、Wordアプリケーションを開きます。
  2. WordアプリケーションのDocumentsプロパティを取得します。
  3. DocumentsプロパティのOpenメソッドでWordファイルを開きます。
import win32com.client

word = win32com.client.Dispatch("Word.Application")
word.Visible = True

try:
    document = word.Documents.Open("[ファイル名]")
    # 処理を書く
finally:
    document.Close()
    word.Quit()
Application.Documents プロパティ (Word)
Office VBA reference topic
Documents.Open メソッド (Word)
Office VBA reference topic
4行目の「word.Visible = True」を削除すると、プログラム実行中のWordの起動が画面上で見えなくなります。

PowerPointファイル

  1. win32com.client.Dispatch(“PowerPoint.Application”)を呼び、PowerPointアプリケーションを開きます。
  2. PowerPointアプリケーションのPresentationsプロパティを取得します。
  3. PresentationsプロパティのOpenメソッドでPowerPointファイルを開きます。
import win32com.client

powerpoint = win32com.client.Dispatch("PowerPoint.Application")
powerpoint.Visible = True

try:
    document = powerpoint.Presentations.Open("[ファイル名]")
    # 処理を書く
finally:
    document.Close()
    powerpoint.Quit()
Application.Presentations プロパティ (PowerPoint)
Office VBA reference topic
Presentations.Open メソッド (PowerPoint)
Office VBA reference topic
4行目の「powerpoint.Visible = True」を削除しても、プログラム実行中のPowerPointの起動は画面上で見えるままです。一方、「powerpoint.Visible = False」にするとエラーになります。

ファイルを開いたあとの応用例

前述の「Office VBAリファレンス」を参照すれば、開いたファイルに対して処理を行うことができます。ExcelファイルをPDF化して保存する下記の記事は応用例の1つです。

ExcelをPDFに自動変換 ~PyWin32~
この記事の目標 Excelで作成した複数文書をPDFに変換することが最近よくある。手動でやるのが面倒なのでPythonで自動変換できるようにしてみた。 サンプルプログラム 入力フォルダ直下に配置したExcelファイルを、出力フォルダ直...

 

コメント

タイトルとURLをコピーしました