Runメソッドは失敗しました 'IWshShell3'オブジェクトエラー パス名にスペースがある場合には注意が必要

Excel/VBAで外部アプリケーションを起動する際、パス名にスペースがあるとエラーになってしまいます。

Sub Sample6()
    Dim ret As Long
    With CreateObject("Wscript.Shell")
        ret = .Run(CurrentProject.Path & "***.exe", 7, True)
    End With
    If ret <> 0 Then MsgBox "失敗しました": Exit Sub
End Sub


変数にエスケープ文字を付加することはできないので、次のようにしましょう。

Sub Sample6()
    Dim ws As Object
    On Error GoTo ErrLabel
    Set ws = CreateObject("WScript.Shell")
    ws.CurrentDirectory = CurrentProject.Path
    ws.Run """***.exe""", 7, True
    MsgBox "正常に終了しました"
    Exit Sub
ErrLabel:
    MsgBox "失敗しました"
End Sub
 

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント