pywin32・win32com.clientを使って、Excelを起動するコードをご紹介しました。
もちろん、起動済みのExcelを操作することも可能です。
VBA・VBScriptで起動済Excelを操作するサンプル
本題であるPythonの前に、VBAやVBScriptのコードを見ておきましょう。
Excelが起動している状態で、以下のようなVBAやVBScriptのコードを実行すると、アクティブなシートのA1セルに「hello, excel!」と入力され、Excelのウィンドウが、画面の左端から10ピクセル上端から10ピクセルの位置に移動します。
Set xl = GetObject(Class:="Excel.Application")
xl.Range("A1").Value = "hello, excel!"
xl.Windows(1).Left = 10
xl.Windows(1).Top = 10
旧来のVB系言語の場合、GetObject関数の引数Classに文字列「Excel.Application」を指定すると、起動済みのExcelへの参照を取得できます。
参照を取得した後の、
xl.Range("A1").Value = "hello, excel!"
xl.Windows(1).Left = 10
xl.Windows(1).Top = 10
の部分は、Excel VBAの、
Range("A1").Value = "hello, excel!"
Windows(1).Left = 10
Windows(1).Top = 10
と同じです。
pywin32・win32com.clientを使ってPythonで起動済Excelを操作するサンプル
pywin32・win32com.clientを使えば、上記のコードとよく似たコードで起動済みExcelを操作できます。
xl = win32com.client.GetObject(Class="Excel.Application")
xl.Range("A1").Value = "hello, world!"
xl.Windows(1).Top = 10
xl.Windows(1).Left = 10
win32com.clientモジュールのGetObject関数で、起動済みのCOMアプリケーションへの参照を取得でき、
xl = win32com.client.GetObject(Class="Excel.Application")
で、Excelを取得できます。
win32com.clientモジュールのGetObject関数は、先ほどのVBA・VBScriptのGetObject関数とやってることは同じです。
win32com.client.GetObjectのDocstringには、以下の記述があります。
Mimic VB's GetObject() function.ob = GetObject(Class = "ProgID") or GetObject(Class = clsid) will
connect to an already running instance of the COM object.ob = GetObject(r"clalahoo.xls") (aka the COM moniker syntax)
Note: You must specifiy one or the other of these arguments. I know
will return a ready to use Python wrapping of the required COM object.
this isn't pretty, but it is what VB does. Blech. If you don't
I'll throw ValueError at you. :)
VBA・VBScriptの場合、名前付き引数への値指定は「:=」を使いますが、
Set xl = GetObject(Class:="Excel.Application")
Pythonですから「=」です。
xl = win32com.client.GetObject(Class="Excel.Application")
参照を取得した後のコード、
xl.Range("A1").Value = "hello, world!"
xl.Windows(1).Top = 10
xl.Windows(1).Left = 10
は、VBA・VBScriptの場合と、まったく同じです。
- 『VBAユーザーのためのPython超入門』出ました。
- 『VBAユーザーのためのPython超入門』に登場するVBA関数一覧
- 『VBAユーザーのためのPython超入門』に登場するPythonの関数・メソッド一覧
最終更新日時:2023-04-19 23:45
Home » Python » pywin32・win32comの使い方 » pywin32・win32com.clientを使ってPythonで起動済みExcelを操作する