【VBA】PythonからVBAのプロシージャを実行する

Pythonから
 ・VBAのプロシージャを実行
できます!

この記事では
 ・Pythonライブラリ「xlwings」を使用
する方法を紹介します!
※Pythonライブラリ「win32com」でも出来ますが今回は割愛します。

PR

前提

・Pythonがインストールされていること
・Pythonライブラリ「xlwings」がインストールされていること

pipでPythonライブラリ「xlwings」をインストールする方法は以下です。
※コマンドプロンプトから以下を実行すればインストールされます。
※Anacondaを使用している場合はpipではなくAnacondaのNavigatorでインストールしてください。

pip install xlwings
PR

VBAのコード

ここでは例として、
 ・デスクトップ配下のExcelファイル「sampl_001.xlsm」の
 ・モジュール「testModule」に
 ・Subプロシージャ「sample」
を作成します。

VBAコードを作成するExcelファイル
VBAコードを作成するExcelファイル
モジュール「testModule」のSubプロシージャ「sample」
モジュール「testModule」のSubプロシージャ「sample」
Sub sample()
    'メッセージ出力
    MsgBox ("VBAからのメッセージ出力です!")
End Sub
PR

Pythonのコード

ここでは例として、
 ・上記で作成したVBAコードを実行する
 ・Pythonファイルを作成
します。

作成するPythonファイル
作成するPythonファイル
import xlwings as xw

# Excelファイルのパスを指定
excelFile = r"C:\Users\user\Desktop\sampl_001.xlsm"
# 対象モジュールを指定
module = "testModule"
# プロシージャ(マクロ)を指定
proc = 'sample'

# Excel起動
App = xw.App(visible=False) 
# ExcelファイルOPEN
wb = App.books.open(excelFile)

# プロシージャ実行
macro=wb.macro(module + '.' + proc)
macro()

# ExceファイルCLOSE
wb.close()
# Excel終了
App.quit()

以下を指定します(4~8行目)。

・Excelファイルのパス
・対象モジュール
・プロシージャ(マクロ)

PR

実行結果

上記で作成したPythonファイル「excel_vba実行サンプル.py」を実行すると、PythonからVBAのプロシージャが実行できたことを確認できます。

Pythonファイルを実行
Pythonファイルを実行
実行結果
実行結果

上記のメッセージボックスは、最背面(開いているファイル等の裏側)に表示されているかもしれません。

上記のメッセージボックスが表示されていないように見える場合は、最背面(開いているファイル等の裏側)をご確認ください。

PR

参考①

Power ShellからVBAのプロシージャを実行することもできます。

詳細は以下の記事をご確認ください。

PR

参考②

バッチファイルからVBAのプロシージャを実行することもできます。

詳細は以下の記事をご確認ください。

PR

参考③

VBSscriptからVBAのプロシージャを実行することもできます。

詳細は以下の記事をご確認ください。

PR

参考④

Pythonライブラリ「xlwings」の詳細は、公式サイトをご確認ください。

タイトルとURLをコピーしました