Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do you run a .exe with parameters using vba's shell()?

I have a target file path that is structured like example below.

C:\Program Files\Test\foobar.exe /G 

What I need to do is be able to execute this file using VBA's shell() command.

How do I have to format the file path to tell Shell() that there is an argument that it needs to call along with running the .exe

What I've read/tried (with no avail) is below with the results to the right.

file = """C:\Program Files\Test\foobar.exe"" /G"    <---Bad file name or number (Error 52)  shell(file)  file2 = "C:\Program Files\Test\foobar.exe /G"       <---file never found shell(file2) 

I've succeeded with running other .exe's using shell() so I know it's not a problem with VBA or the function.

Example:

works = "C:\Program Files\Test\test.exe" shell(works) 

I'm not particularly familiar with the process involved with executing files that require additional parameters so if I misspeak or you need more information, please let me know.

like image 288
Austin A Avatar asked Jan 04 '14 05:01

Austin A


1 Answers

This works for me (Excel 2013):

Public Sub StartExeWithArgument()     Dim strProgramName As String     Dim strArgument As String      strProgramName = "C:\Program Files\Test\foobar.exe"     strArgument = "/G"      Call Shell("""" & strProgramName & """ """ & strArgument & """", vbNormalFocus) End Sub 

With inspiration from here https://stackoverflow.com/a/3448682.

like image 176
MBWise Avatar answered Sep 20 '22 16:09

MBWise