web-dev-qa-db-fra.com

Comment exécutez-vous un fichier .exe avec des paramètres utilisant le shell vba ()?

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.

26
Austin A

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 .

33
MBWise

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!

7
niklasolsn

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
0
Sameer