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

pywin32を使って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が起動していない状態で、以下のコードを、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では不要です。

最終更新日時:2020-08-26 07:04

[スポンサードリンク]

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

TrackBack:0

TrackBack URL

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

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

検索


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

.