Ege Ozlem Ege Ozlem - 1 year ago 375
Bash Question

How to call python script on excel vba?

trying to call a python script on Vba and I am a newb. I tried converting the main script to an exe using py2exe and then calling it from VBA (shell) but the main script calls other scripts therefore it becomes complicated and I messed it up (my exe is not functional). Besides, the the main script is a large file and I do not want to revise it a lot.

Bottomline, is there a way to call the main script from excel vba, without converting the script to an exe file.

So far, I tried:

RetVal = Shell("C:\python27\python.exe " & "import " & "C:\\" & "MainScriptFile")

It starts python.exe but does nothing else. Then I tried:

RetVal = Shell("C:\Windows\System32\cmd.exe " & "python " & "C:\\Python27\\")

It starts command prompt but does not even start python.

P.S. I checked all the related questions in the forum, they do not solve my prob.

Answer Source

Hmm. Try this:

RetVal = Shell("<full path to python.exe> " & "<full path to your python script>")

Or if the python script is in the same folder as the workbook, then you can try :

RetVal = Shell("<full path to python.exe> " & "ActiveWorkBook.Path & \<python script name>")

All details within <> are to be given. <> - indicates change-able fields

I guess this should work. But then again, if you script is going to call other files which are in different folders, it can cause errors unless you script has properly handled it. Hope it helps.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download