PythonでExcel操作~~といったところは近年よく話題になり、Excel業務をPythonで自動化・効率化というトレンドがあったりなかったりします。そのようなトレンドになるほどPythonにはExcel操作のライブラリが多数存在し、PythonとExcelの親和性が高いのも事実です。
PythonのExcel操作系ライブラリのほとんどでは、マクロを実行するメソッドが用意されています。今回はxlwingsというライブラリを使ってExcelマクロを実行する手順を紹介します。
Excelマクロ
Pythonで呼び出すExcelマクロを確認しておきます。今回は簡単なマクロを用意しました。Sample.xlsmに1~12月までの合計を算出するマクロを作成しました。
PythonからAggregate()を呼び出します。


Sub Aggregate()
Dim 合計 As Integer
For i = 1 To 12
合計 = 合計 + Cells(2, i).Value
Cells(2, 13) = 合計
End Sub
xlwingsのインストール
xlwingsをインストールしていない方はまずインストールしましょう。pip、condaの両方からインストール可能です。
pip install xlwings
conda install xlwings
PythonからExcelマクロを実行する
Pythonから先ほどのマクロを実行します。まずはソースコード全体を紹介します。
import xlwings as xw
excel = xw.App(visible=False)
wb = excel.books.open('C:/Project/マクロ/Sample.xlsm')
macro= wb.macro('Aggregate')