2017-08-17 10 views
0

VBAから実行したいバットファイルがあります。私のワークブックにはバッチファイルの名前があります:test.bat。 test.batとブックは私が使用しているフォルダを変更するので、VBAを使用したシェルコマンドで特定のExcelセルを呼び出す

ThisWorkbook.Path 

には常に現在のディレクトリがあります。

ただし、ThisWorbook.Pathを配置した後に、シェルコマンドにバッチファイル名を含むセルを挿入できません。ここで

は、これまでの私のコードです:

Sub helpme() 

Shell "cmd.exe /k cd " & ThisWorkbook.Path & Range("B41") 

End Sub 

注ちょうど

Shell "cmd.exe /k cd " & ThisWorkbook.Path 

でコードがCMDウィンドウを開き、ワークブックのディレクトリに設定しますので、それだけで問題だということbatファイルを実行するためにセルB41に含まれる "test.bat"文字列を挿入します。

はあなたの助けをありがとうございました、私はそれが簡単に修正:)

答えて

1

がimthemanの答えに追加する必要はありません願っています:あなたのワークブックのパスが含まれている場合スペースがあなたは引用符でパスをラップする必要があります

Sub helpme() 

    'Shell "cmd.exe /k cd """ & ThisWorkbook.Path & "\" & Range("B41") & """" 
    'if you just want to run the bat file... 
    Shell """" & ThisWorkbook.Path & "\" & Range("B41") & """" 

End Sub 
+0

@ imthemanティム・ウィリアムズは、あなたの迅速な応答をありがとう@しかし、私はそれを動作させるように見えることはできません、あなたのコードチタンウィリアムズには構文上の問題があります。私はそれを変えようとしましたが、適切な構文がないか、またはコマンドプロンプトが "指定されたパスを見つけることができません"または "ディレクトリ名が無効です"というメッセージが表示されます。 –

+0

'&'がありません - 固定 –

+0

はい、私はあなたがそれを置いたようにそれを試したので、それが行方不明だと思ったが、それはディレクトリ名が無効であると言います。 2つの別々のコマンドが必要なのかもしれません。 cmdboxを正しいディレクトリに設定し、もう1つはtest.batを実行しますか?あなたはそれをする方法を知っていますか?あなたのコードは、それが自然に行うことができないtest.batまでディレクトリを設定しようとしていることを意味すると思います。 –

1

ThisWorkbook.Path末尾\

Sub helpme() 

Shell "cmd.exe /k cd " & ThisWorkbook.Path & "\" & Range("B41") 

End Sub 
関連する問題