Home » Python » pywin32・win32comの使い方 » pywin32・win32com.clientを使ってPythonからExcelを起動する

pywin32・win32com.clientを使ってPythonからExcelを起動する

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

このサイト『インストラクターのネタ帳』では、pywin32を使ってExcelを操作するコードをいくつかご紹介しています。

pywin32を使ったことがない方の場合、Excelを起動するだけのコードを、実行してみるほうがイイでしょう。

PythonからExcelを起動するサンプル

Excelが起動していない状態で、以下のコードをIDLEのShellウィンドウ等で、1行ずつ実行してみてください。

import win32com.client
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の、以下のようなコードと実質的に同じです。

Dim xl
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では不要です。

最終更新日時:2023-04-19 17:43

[スポンサードリンク]

Home » Python » pywin32・win32comの使い方 » pywin32・win32com.clientを使ってPythonからExcelを起動する

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

検索


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

.