Pythonを使ってExcelのVBAマクロを実行する方法について説明します。PythonからExcelを操作するライブラリによって、VBAをPythonに書き換える必要がない、Python×VBAが可能になる、Python×VBAが可能になるなどのメリットがあります。
PythonからVBAを実行するライブラリ
PythonからVBAを実行できるライブラリとそうではないライブラリがあります。PythonでExcelを操作するときによく使うライブラリについて、カンタンに解説をしておきます。
openpyxl
openpyxlはPythonでExcelを操作するときに、よく使われるライブラリです。しかし少なくとも私が調べた限りでは、Python経由でエクセルマクロを実行することは難しいです。そのため、openpyxlではVBAを実行できないと考えるのがよいです。
win32com
win32comはPythonでExcelだけでなくOutlookも操作できるライブラリです。Microsoft Officeのアプリケーション全般を操作できると考えてもらえればよいです。このライブラリを使うと、PythonからExcel VBAを実行することが可能です。
xlwings
xlwingsライブラリは、PythonでExcelを操作するときに使えるライブラリです。このライブラリを使うと、PythonからExcel VBAを実行することが可能です。
PythonからExcelマクロVBAを実行するメリット
PythonからExcelマクロVBAを実行するメリットは以下の通りです。
- VBAをPythonに書き換える必要がない
- VBAの強みを活かせる
PythonからVBAを実行できるメリットの一つに、「VBAをPythonに書き換える必要がない」ことがあります。たとえば職場でVBAで処理をしている業務を他のプログラム言語で動かそうとした場合、その言語で書き換える必要があります。しかしVBAで記載されたプログラムをPythonで実行する場合、その書き換えが不要です。
PythonからVBAを実行できるようになるメリットに、「Python×VBAが可能になる」ことがあります。具体的なメリットは、PythonとVBAをスイッチして処理ができることです。たとえばPythonでウェブスクレイピングで得たデータをエクセルに書き出し、そのデータをVBAで計算することが可能になるのです。
まとめ
PythonからExcelのVBAを実行する方法は、Pythonのライブラリを使って簡単に実現できます。PythonとVBAの連携により、より高度な処理が可能になります。この記事がPythonとVBAの連携に興味を持つ方々の参考になれば幸いです。