編集:これは同じ質問ですが、私はそれを書き直したので、読みやすくなっています。VBA経由でPythonスクリプトを実行し、アクティブブックの名前とパスを指定しますか?
私は既にこのポストを試してみました:How to call python script on excel vba?
そして、このポスト:Run and execute a python script from VBA
そして、このポスト:How can I call python program from VBA?
しかし、答えのどれも私のために働かないと私は私は何見当がつかない間違っている。問題1:VBAからpythonスクリプトを実行したい。 Excelファイルには家の場所がありません(デスクトップ上に置くことができます)。私が使用したいコード:
Dim Ret_Val
Ret_Val = Shell("C:\python27\python.exe \\10.31.13.22\SharedDocs\3 - Technical\13 - Reports & Templates\13 - Description\DescriptionToDatabase.py")
pythonファイルは、常にサーバー上で同じパスを使用します。私はここでワットが間違っているのが見えない?私が得るのは黒いパイソンのスクリーンだけです。私は、ブックと正しいシートを呼び出すのpythonファイルで
:Excelワークブックのパスはpythonでハードコードされた瞬間に
book = xlrd.open_workbook("//10.31.13.22/SharedDocs/3 - Technical/1 - Projects/0 - Internal/RPA 138 - Engineering software/testchipdescription/upload to database/testchipdescription-template-10-11.xltm")
sheet = book.sheet_by_name("Database")
。これは私を問題2に戻します:エクセルワークブックの名前とパスを何とか私のpythonスクリプトに渡すことはできますか?
編集:
コマンドプロンプトでshell()コードを試しました。 VBAと同じ:
"C:\python27\python.exe \\10.31.13.22\SharedDocs\3 - Technical\13 - Reports & Templates\13 - Description\DescriptionToDatabase.py"
これは機能しません。 'システムは指定されたパスを見つけることができません'。
私はこの1つ試してみました:
C:\python27\python.exe "\\10.31.13.22\SharedDocs\3 - Technical\13 - Reports & Templates\13 - Description\DescriptionToDatabase.py"
をそして、それは働きます!したがって、cmdはパス内のスペースを処理する必要があります。 "しかし、私はVBAでそれらを追加することはできません。それ以外の場合は2 ""は配置できません。
これらのヒントをありがとう。私は自分の質問が漠然としていることを理解していますが、質問をする前に本当に最初に見ています。私はシェルのことは聞いたことがない。だから、ありがとう、私はそれを探します! – VeVi
VBAコードを実際に表示した場合は、手助けする方が簡単です。つまり、あなたがやろうとしていることを推測しなければならないし、VBAにRetVal関数もないので、あなたは 'RetVal = Shell(" shell command ")'。何らかの形で 'Shell'をまだ使っていないのであれば、あなたが何をしようとしているのか、VBAからPythonオブジェクトを呼び出す方法が分かりません。 [あなたの質問を改訂してさらに説明してください](http://stackoverflow.com/posts/40657992/edit)これで問題が解決しない場合は、 –