J'ai un chemin de fichier cible structuré comme dans l'exemple ci-dessous.
C:\Program Files\Test\foobar.exe /G
Ce que je dois faire, c'est pouvoir exécuter ce fichier en utilisant la commande Shell()
de vba.
Comment formater le chemin du fichier pour indiquer à Shell()
qu'il existe un argument à appeler pour exécuter le fichier .exe
Ce que j'ai lu/essayé (sans résultat) est en dessous avec les résultats à droite.
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)
J'ai réussi à exécuter d'autres fichiers .exe à l'aide de Shell (), donc je sais que ce n'est pas un problème avec vba ou la fonction.
Exemple:
works = "C:\Program Files\Test\test.exe"
Shell(works)
Je ne suis pas particulièrement familiarisé avec le processus d'exécution de fichiers nécessitant des paramètres supplémentaires. Par conséquent, si je me trompe ou si vous avez besoin de plus d'informations, veuillez me le faire savoir.
Cela fonctionne pour moi (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
Avec l'inspiration d'ici https://stackoverflow.com/a/3448682 .
Voici quelques exemples d'utilisation de Shell dans VBA.
Ouvrez stackoverflow dans Chrome.
Call Shell("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" &
" -url" & " " & "www.stackoverflow.com",vbMaximizedFocus)
Ouvrez un fichier texte.
Call Shell ("notepad C:\Users\user\Desktop\temp\TEST.txt")
Ouvrez une application.
Call Shell("C:\Temp\TestApplication.exe",vbNormalFocus)
J'espère que cela t'aides!
Le code ci-dessous vous aidera à ouvrir automatiquement le fichier .exe à partir 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