想定する読者
ライブラリPyWin32に対して、どのメソッドを使ってExcel / Word / PowerPointのファイルを操作すれば良いかの取っ掛かりが難しいと感じている方
JavaでOfficeファイルを開く方法を下記記事で紹介しています。PyWin32と似たコードで実現できます。

JACOBでExcel / Word / PowerPointのファイルを開く
この記事の目的JavaでOfficeファイルを操作するライブラリにJACOB(Java COM Bridge)があります。PythonのライブラリPyWin32と使い方が似ているため、PyWin32の記事と同じ章構成で使い方を紹介します。本...
[広告]関連書籍
リンク
リンク
各ファイルの開き方
概要
ライブラリPyWin32を使ってExcel / Word / PowerPointのファイルを開く手順の概要は下記です。
- win32.com.client.Dispatchメソッドで、対応するOfficeのアプリケーションを開きます。
- 1.で開いたアプリケーションを使って、Officeファイルを開きます。どんなメソッドが使えるかは「Office VBAリファレンス」を見ると分かります。

Office Visual Basic for Applications (VBA) リファレンス
この記事の内容は、VBA について学ぶことを希望したり、Office をカスタマイズする作業にプログラミングを役立てる方法について詳しく知ることを望む、経験ある Office ユーザーのために書かれています。
Excelファイル
- win32com.client.Dispatch(“Excel.Application”)を呼び、Excelアプリケーションを開きます。
- ExcelアプリケーションのWorkbooksプロパティを取得します。
- 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()
https://docs.microsoft.com/ja-jp/office/vba/api/excel.application.workbooks
https://docs.microsoft.com/ja-jp/office/vba/api/excel.workbooks.open
4行目の「excel.Visible = True」を削除すると、プログラム実行中のExcelの起動が画面上で見えなくなります。
Wordファイル
- win32com.client.Dispatch(“Word.Application”)を呼び、Wordアプリケーションを開きます。
- WordアプリケーションのDocumentsプロパティを取得します。
- 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()
https://docs.microsoft.com/ja-jp/office/vba/api/word.application.documents
https://docs.microsoft.com/ja-jp/office/vba/api/word.documents.open
4行目の「word.Visible = True」を削除すると、プログラム実行中のWordの起動が画面上で見えなくなります。
PowerPointファイル
- win32com.client.Dispatch(“PowerPoint.Application”)を呼び、PowerPointアプリケーションを開きます。
- PowerPointアプリケーションのPresentationsプロパティを取得します。
- 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()
https://docs.microsoft.com/ja-jp/office/vba/api/powerpoint.application.presentations
https://docs.microsoft.com/ja-jp/office/vba/api/powerpoint.presentations.open
4行目の「powerpoint.Visible = True」を削除しても、プログラム実行中のPowerPointの起動は画面上で見えるままです。一方、「powerpoint.Visible = False」にするとエラーになります。
ファイルを開いたあとの応用例
前述の「Office VBAリファレンス」を参照すれば、開いたファイルに対して処理を行うことができます。ExcelファイルをPDF化して保存する下記の記事は応用例の1つです。

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


コメント