【Python】Excelマクロを実行する方法を紹介
今回はPythonからExcelマクロを実行する方法を紹介をします。
Pythonで実行するためにはpywin32もしくはxlwingsライブラリを利用します。
また、この方法を使用するには、Excelがコンピューターにインストールされている必要があります。
pywin32
ライブラリで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
マクロブックにこのようなプロシージャ名を用意しておき、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()を実行します。