
VBAから
・pythonファイルを
・同期実行する
方法を記載します!

pythonファイルの実行結果も
取得できます!
前提
pythonがインストールされていること。
pythonのコード
ここでは例として、
・「pythonからのメッセージ出力です!」というメッセージを出力する
・「test.py」を作成
します。
from tkinter import messagebox
import sys
messagebox.showinfo('メッセージ', 'pythonからのメッセージ出力です!')
# 正常終了の場合、戻り値として「0」を返す
sys.exit(0)
# 異常終了の場合、戻り値として「1」を返す
# sys.exit(1)

VBAのコード
ここでは例として、
・上記で作成したpythonのファイル「test.py」を
・同期実行
します。
※ここでは先程作成したpythonのファイル「test.py」をデスクトップ配下に配置しています。
'変数の宣言を必須
Option Explicit
Sub execBatch()
Dim pyFile As String
Dim wsh As Object
Dim result As Integer
'pythonファイルのパスを指定
pyFile = "C:\Users\user\Desktop\test.py"
Set wsh = CreateObject("WScript.Shell")
'pythonファイルを同期実行
result = wsh.Run(Command:=pyFile, WaitOnReturn:=True, WindowStyle:=0)
If (result = 0) Then
MsgBox ("pythonファイルは正常終了しました。")
Else
MsgBox ("pythonファイルは異常終了しました。")
End If
'後片付け
Set wsh = Nothing
End Sub
実行結果
pythonファイルを同期実行できました。


参考①
VBAでバッチファイルを実行することもできます。
詳細は以下の記事をご確認ください。
参考②
VBAでコマンドプロンプトのコマンドを実行することもできます。
詳細は以下の記事をご確認ください。
参考③
VBAでPowerShellファイルを実行することもできます。
詳細は以下の記事をご確認ください。
参考④
VBAでVBScriptファイルを実行することもできます。
詳細は以下の記事をご確認ください。