vbnormalfocus shellandwait run retval macro ejecutar desde shell vba excel-vba parameters command-line-arguments

shellandwait - ¿Cómo se ejecuta un.exe con parámetros usando el shell de vba()?



vba shell run (3)

Aquí hay algunos ejemplos de cómo usar Shell en VBA.
Abrir stackoverflow en Chrome.

Call Shell("C:/Program Files (x86)/Google/Chrome/Application/chrome.exe" & " -url" & " " & "www.stackoverflow.com",vbMaximizedFocus)


Abre un archivo de texto.

Call Shell ("notepad C:/Users/user/Desktop/temp/TEST.txt")


Abre alguna aplicación.

Call Shell("C:/Temp/TestApplication.exe",vbNormalFocus)


¡Espero que esto ayude!

Tengo una ruta de archivo de destino que está estructurada como el ejemplo a continuación.

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

Lo que necesito hacer es poder ejecutar este archivo usando el comando vba''s shell() .

¿Cómo debo formatear la ruta del archivo para decirle a Shell() que hay un argumento al que debe llamar junto con la ejecución del .exe

Lo que he leído / intentado (sin resultado) está debajo con los resultados a la derecha.

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)

Logré ejecutar otros .exe usando shell (), así sé que no es un problema con vba o la función.

Ejemplo:

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

No estoy particularmente familiarizado con el proceso relacionado con la ejecución de archivos que requieren parámetros adicionales, por lo que si me equivoco o si necesita más información, hágamelo saber.


El siguiente código te ayudará a abrir automáticamente el archivo .exe de Excel ...

Sub Auto_Open ()

Dim x As Variant Dim Path As String '' Set the Path variable equal to the path of your program''s installation Path = "C:/Program Files/GameTop.com/Alien Shooter/game.exe" x = Shell(Path, vbNormalFocus)

End Sub


Esto funciona para mí (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

Con inspiración desde aquí https://.com/a/3448682 .