最近Pyinstallerで作成した.exe
ファイルをマクロから実行させる、ということがあったのでそのやり方を備忘録も兼ねて残しておきたいと思います。
コード
VBAから.exe
ファイルを実行するにはShell
を使用します。
Sub python_Exe_実行()
Dim target_Path As String
Dim id As Long
'.exeファイル格納パスを指定
target_Path = "C:\Python\Python_test\test_Exe.exe"
'.exeファイルを実行する
id = Shell(target_Path)
End Sub
以下がtest_Exe.exe
のベースになる.py
ファイルになります。
#test_Exe.exeのベースになる.pyファイル(test_Exe.py)
print("はりぼな ブログ")
input("Enterを押して閉じてください。")
.exe
化に以下コマンドを使用しています。
pyinstaller C:\Python\Python_test\test_Exe.py --onefile
実行するとtest_Exe.exe
が実行されます。
引数も指定する場合
引数も指定する場合はパスの後ろに半角ブランクを入力し、その後ろに値を指定すると引数を渡すことができます。
Sub python_Exe_実行_引数()
Dim target_Path As String
Dim target_Parameter As String
Dim id As Long
'.exeファイル格納パスを指定
target_Path = "C:\Python\Python_test\test_Exe_Parameter.exe"
'引数
target_Parameter = "こんにちは!はりぼなブログです!"
'格納パスの後ろに半角ブランクを付けて引数を指定
id = Shell(target_Path & " " & target_Parameter)
End Sub
以下がtest_Exe_Parameter.exe
のベースになる.py
ファイルになります。
なお、引数を受け取る為にimport sys
とsys.argv[1]
を使用しています。
#test_Exe_Parameter.py
import sys
print(sys.argv[1])
input("Enterを押して閉じてください。")
実行すると指定した引数が表示されます。
まとめ
今回はPyinstallerで作成した.exe
ファイルをマクロから実行する方法を紹介しました。
下記手順で作成~実行させることができるので、是非参考にしていただければと思います。
.py
ファイルを作成pyinstaller
で.exe
ファイルを作成Shell
で.exe
ファイルを実行
このブログではVBAに関する記事を不定期で投稿していますので、是非ご覧ください!
コメント