ExcelのVBAでPythonを実行する | python3Xのブログ

python3Xのブログ

ここでは40代、50代の方が日々の生活で役に立つ情報や私の趣味であるプログラム、Excelや科学に関する内容で投稿する予定です。

Pythonのコードは後程アップします

(コード内のディレクトリは絶対パスを使っています)

 

まず、batファイルを作成します

(こちらも絶対パスです)

①Anacondaのインストール時に環境変数に設定の書き込みをする

②Windowsパワーシェルの実行ファイル(powershell.exe)がどこにあるかをを確認し

 まず、それを起動させる

③次にシェルの中でPythonコマンドを実行するためのpython.exeのパスを半角開けて記入する

④更に、Pythonコードが記入されたpyファイルのパスを半角開けて記入する

 

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe C:\Users\XXXX\anaconda3\python.exe C:\Users\XXXX\Desktop\bunrui.py

 

次に

ExcelのVBAを作成します

リストボックスを用いて複数の処理の中から

実行したいものを選べるようにしました

 

Private Sub CommandButton1_Click()
    Dim obj As WshShell
    Dim sPath
    
    sPath = UserForm1.ListBox1.Value
    If sPath = "分類" Then
        sPath = "C:\Users\XXXX\Desktop\bunrui.bat"
    ElseIf sPath = "オミクジ" Then
        sPath = "C:\Users\XXXX\Desktop\omikuji.bat"
    Else
        sPath = "C:\Users\XXXX\Desktop\temp.bat"
    End If
    
    Set obj = New WshShell    
    Call obj.Run(sPath, WaitOnReturn:=True)
End Sub
=============================================
Private Sub CommandButton2_Click()
    Unload Me
End Sub
========================================
Private Sub UserForm_Initialize()
    UserForm1.Caption = "Pythonを動かす"
    With ListBox1
        .AddItem "分類"
        .AddItem "オミクジ"
        .AddItem "温度予想"
    End With
End Sub
 
=============================================
Workbookをクリックし
Private Sub Workbook_Open()
    UserForm1.Show
End Sub
Workbookを開いたときにフォームが表示されるようにする
=============================================
 
この後、VBAでWshshellが使えるように設定します
設定方法はURLを参考にしてください
 

結果

Workbookを開くと下図のフォームが表れます

 

 

2番目のオミクジを選択するとコードが実行され

    ↓

    

 

1番目の分類を選択すると

 

              

 

3番目の過去のデータから2019年の東京の月別

気温予想を選択すると

 

 

となります

Excelは慣れ親しんでいる人も多く

それでPythonコードが自在に実行できるのは

大きなメリットになると思います