Function bat_test()
On Error GoTo a_err
Dim Ret
Dim b_test As String
Dim p_a
Dim p_b
b_test = "C:\Documents and Settings\abc\デスクトップ\b_test.bat"
p_a = "123 "
p_b = "4 5"
Ret = Shell("cmd.exe /c """ & b_test & """" & " " & p_a & """ & p_b & """, vbNormalFocus)
Exit Function
a_err:
MsgBox Err.Description
End Function
<b_test.bat>
@echo off
echo %1
echo %2
echo %3
pause
;;;;;;;;;;
結果は、Dosプロンプトが一瞬でて終わります。
2番目の引数に空白が入っていますが、" で括っていますが、どうもうまくいきません。お分かりの方よろしくお願いいたします。
「”」の個数が合ってません(足らない)。
これでは、
「cmd.exe /c "C:\Documents and Settings\abc\デスクトップ\b_test.bat" 123 " & p_b & "」
こういうコマンドを実行しようとしてしまいます。
> Ret = Shell("cmd.exe /c """"" & b_test & """" & " " & p_a & """" & p_b & """""", vbNormalFocus)
うーん。こうかな・・・
「cmd.exe /c ""C:\Documents and Settings\abc\デスクトップ\b_test.bat" 123 "4 5""」
こういうコマンドが実行されるはず・・・
Ret = Shell("cmd.exe /c """"" & b_test & """" & " " & p_a & " " & """" & p_b & """""", vbNormalFocus)
で解決しました。
大吉末吉さん、感謝です!!