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 .