VBAからPythonを動かす2
前回VBAからPythonを実行するとができたが引数を渡して実行するほうが分からずスルーしていたが少し調べてみたらできるようになったのでそのメモ
参考にしたのは下のサイト Passing a variable from Excel to Python with XLwings - Stack Overflow
引数を受けて処理するPythonコード
受け取った引数に対して受け取った引数はです。と返すだけのプログラム
Get_arg.py
# -*- coding:utf-8 -*- from xlwings import Workbook, Range def get_data(arg): wb = Workbook.caller() re = "受け取った引数は" + str(arg) + "です。" Range("A3").value = re
VBAのコード
xlwingsなどの設定は前回書いたので省略するとして、引数を投げるVBAのコード 変数Nameを宣言しセルのA1の値を代入してpythonに投げるだけのプログラム 引数を下記の様に書くとpythonの方へ投げられる。
('" & Name & "')
ただ何故このような書き方なのかは、上のサイトや公式サイトを見ても英語なのでよくわからなかった。(もしかしたらVBAではこれが普通なのかもしれないが知らないので)とりあえずこれで動くので良しとする。
Sub TestPy() Dim Name Name = Range("A1").Value RunPython ("import Get_arg;Get_arg.get_data('" & Name & "')") End Sub