【Python】Excelマクロを実行する方法を紹介

今回はPythonからExcelマクロを実行する方法を紹介をします。

Pythonで実行するためにはpywin32もしくはxlwingsライブラリを利用します。

また、この方法を使用するには、Excelがコンピューターにインストールされている必要があります。

pywin32ライブラリでExcelマクロを実行

import win32com.client

# Excelアプリケーションを起動する
excel = win32com.client.Dispatch('Excel.Application')

# エクセルを表示する設定(0にすれば非表示で実行される)
excel.Visible = 1

# マクロブックを開く
excel.Workbooks.Open(Filename=r'マクロブックのパス')

# マクロを実行する
excel.Application.Run('プロシージャ名')

# ブックを保存して閉じる
excel.Workbooks(1).Close(SaveChanges=1)

# 必要に応じてExcelアプリケーションを終了する
excel.Application.Quit()

pywin32ライブラリでExcelマクロを実行するためにはこのようなコードを書きます。

Sub プロシージャ名()
    MsgBox "成功"
End Sub
pywin32ライブラリでExcel VBAを実行

マクロブックにこのようなプロシージャ名を用意しておき、Pythonのプログラムを実行すると、このようにメッセージボックスが表示されます。

# マクロを実行する
excel.Application.Run('プロシージャ名()')

マクロを実行しているのはApplication.Runメソッドで、この引数にプロシージャ名を指定して実行します。

xlwingsライブラリでExcel VBAを実行

import xlwings as xw

# Excelアプリケーションを起動する
excel = xw.App(visible=True)

# マクロブックを開く
wb = excel.books.open(r'マクロブックのパス')

# マクロを実行する
macro= wb.macro('プロシージャ名')
macro()

# ブックを保存して閉じる
wb.save()
wb.close()

# 必要に応じてExcelアプリケーションを終了する
excel.quit()

xlwingsライブラリでExcelマクロを実行するためにはこのようなコードを書きます。

# マクロを実行する
macro= wb.macro('プロシージャ名')
macro()

マクロを実行しているのはこの箇所で、一旦wb.macroメソッドを実行し、その後にmacro()を実行します。

《Python初心者向けの本》
実行時エラーに悩まされるより断然おトクです。

他の「Python」の記事はこちらからどうぞ

Python

Posted by やろまい