私のVBAプログラムは、以下の通りであるスペースを持っている場合などであるVBAコードを含むワークブックの同じディレクトリに、VBA Shell関数は、ディレクトリの名前が
Sub Test()
Dim ret_val As Variant
ChDir ThisWorkbook.path
ret_val = Shell("C:\Python27\python.exe " & ThisWorkbook.path & "\Hello.py", vbNormalFocus)
End Sub
私のPythonスクリプトHello.py
をPythonスクリプトを実行するのに失敗しました以下、
for i in range(1000):
print "Hello"
は、Excelイミディエイトウィンドウで?"C:\Python27\python.exe " & ThisWorkbook.path & "\Hello.py"
は私にC:\Python27\python.exe C:\Company\Folder 1\Hello.py
を与えて入力します。この場合、Excel VBAからTest()
を実行すると、あたかも開いているがあたかもpythonスクリプトを実行していないかのように暗いプロンプトウィンドウが点滅します。
しかし、私は(通知が今のディレクトリの名前にスペースがない)Folder1
にフォルダ名Folder 1
の名前を変更した場合は、ExcelのVBAからTest()
を実行すると、「こんにちは」に書き込まれたプロンプトウィンドウを表示されますと、私は見ることができますしばらくの間スクリーン。
VBAでシェル機能を使用する場合、フォルダ名にスペースを入れることはできません。しかし、本当にこのバグの原因は何ですか?また、名前にスペースがあるフォルダを使用できるように修正する方法はありますか?
ファイル名を引用符で囲んでみましたか?私はVBAユーザーではありませんが、C:\ Python27 \ python.exe ""&ThisWorkbook.path& "\ Hello.py" ""仕事は?これはうまくいけば 'C:\ Python27 \ python.exe" C:\ Company \ Folder 1 \ Hello.py "を与えます。 –
'CHR(34)'はVBAで二重引用符を生成します – mjsqu