VBAからPythonを実行する方法

VBAからPythonを実行する方法はいくつかありますが、ここでは主に2つの方法を紹介します。

方法1: WshShellオブジェクトを使用する

この方法では、VBAからコマンドプロンプトを操作してPythonを実行します。以下にその手順を示します。

Dim wsh As WshShell
Set wsh = CreateObject("WScript.Shell")
py_file = ThisWorkbook.Path & "\Python.py"
cmd_str = "python " & py_file
Set wExec = wsh.Exec("%ComSpec% /c " & cmd_str)

方法2: テキストファイルを中間ファイルとして使用する

この方法では、VBAとPython間で値を双方向で受け渡すことが可能になります。以下にその手順を示します。

Dim fso As FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CreateTextFile(フルパス)

PythonからVBAへの戻り値の取得

PythonからVBAへの戻り値を取得するには、Pythonの標準出力を読み取ることで可能です。以下にその手順を示します。

Do While wExec.Status = 0
    DoEvents
Loop
Range("D6").Value = Val(wExec.StdOut.ReadAll)

以上がVBAからPythonを実行し、戻り値を取得する方法です。これらの方法を活用することで、VBAとPythonの連携がよりスムーズになります。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です