このサイト『インストラクターのネタ帳』では、pywin32を使ってExcelを操作するコードをいくつかご紹介しています。
pywin32を使ったことがない方の場合、Excelを起動するだけのコードを、実行してみるほうがイイでしょう。
PythonからExcelを起動するサンプル
Excelが起動していない状態で、以下のコードをIDLEのShellウィンドウ等で、1行ずつ実行してみてください。
xl = win32com.client.Dispatch('Excel.Application')
xl.Visible = True
xl.Workbooks.Add()
最初の、
xl = win32com.client.Dispatch('Excel.Application')
を実行した時点で、画面上には表示されていませんが、非表示状態でExcelが起動します。
つづく、
xl.Visible = True
を実行すると、ブックの存在しないExcelが表示されます。
その次の、
xl.Workbooks.Add()
を実行すると、ブックの存在する状態になります。
VBA・VBSでExcelを起動するのと基本的に同じ
上記のPythonのコードは、VBAやVBScriptの、以下のようなコードと実質的に同じです。
Set xl = CreateObject("Excel.Application")
xl.Visible = True
xl.Workbooks.Add
(VB.Netではない)従来のVB系の言語で書いてあるか、Pythonで書いているかの違いです。
Pythonの場合は、pywin32に含まれるモジュールを利用するために、
import win32com.client
が必要ですが、VBA・VBSの場合、これに該当するコードはありません。
つづく、
Dim xl
Set xl = CreateObject("Excel.Application")
が、Pythonの
xl = win32com.client.Dispatch('Excel.Application')
です。
pywin32の場合、win32com.clientモジュールのDispatch関数で、COMアプリケーションを起動して参照を取得するのに対し、VBA・VBSはCreateObject関数です。また、変数への代入は、データのすべてがオブジェクトであるPythonの場合、特にキーワードは不要ですが、VBA・VBSの場合オブジェクトの場合Setキーワードが必須です。
Set xl = CreateObject("Excel.Application")
起動した非表示状態のExcelを表示する、
xl.Visible = True
は、PythonでもVBA・VBSでも、コードとしては同じです。
最後に行っている、ブックを新規に作成するWorkbooksコレクションのAddメソッドは、Pythonの場合カッコが必須ですが、
xl.Workbooks.Add()
VBA・VBSでは不要です。
- 『VBAユーザーのためのPython超入門』出ました。
- 『VBAユーザーのためのPython超入門』に登場するVBA関数一覧
- 『VBAユーザーのためのPython超入門』に登場するPythonの関数・メソッド一覧
最終更新日時:2023-04-19 17:43
Home » Python » pywin32・win32comの使い方 » pywin32・win32com.clientを使ってPythonからExcelを起動する