Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in Friedrichroda /
Thüringen / Region Großer Inselsberg statt. Hotelbuchung ab sofort möglich.

Externe Anwendung aus Excel heraus starten
#1
Hallo meine Lieben,

wie kann ich mittels VBA Code eine externe Exe-Datei in einem Verzeichnis C:\Test
aufrufen. Ich möchte aus Excel heraus gerne eine Anwendung starten und
verwende eine Office 64 bit Version.

Danke für eure Hilfe
to top
#2
Hallo Christa,

im Prinzip so:

Sub test()
Shell "c:\windows\notepad.exe", 1
End Sub

Das wäre die einfachste Variante, Excel-VBA startet die Anwendung und macht unabhängig davon, was "draußen" passiert, weiter.
Komplex und Clever wäre das, wenn Du auf das Ende der Ausführung warten willst :
http://www.appspro.com/Downloads/ShellAndWait.zip

Das berücksichtigt auch die 64bit-Variante.
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
to top
#3
Codealternative zum Öffnen der Datei Beispiel.exe:
Code:
Dim myShell As Object
Set myShell = CreateObject("WScript.Shell")
myShell.Run Chr(34) & "C:\Verzeichnis\Beispiel.exe" & Chr(34)
Set myShell = Nothing

Nächste Frage:
Die Datei Beispiel.exe soll eine Textdatei öffnen. Ist es möglich das nach dem Aufruf der Datei Beispiel.exe aus Excel heraus,
dies ebenfalls durch VBA Programmierung möglich ist? Und vor allem wie wird das umgesetzt?
to top
#4
Hallo Christa,

wenn es sich um die Standardanwendung für einen bestimmten Dateityp handelt, reicht - hier am Beispiel von Notepad -
myShell.Run "notepad.exe d:\test\test.txt"

Die äußeren Anführungszeichen (chr(34)) sind eigentlich nicht notwendig.
Bei mir läuft es auch so - auch mit Leerzeichen im Namen usw.
myShell.Run "notepad.exe d:\test\test - Kopie.txt"
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
to top
#5
Hi Andre,

danke für den Hinweis. Aber bir genau dies das Problem.
Ich hatte erst alles nur in Anführungszeichen gesetzt
und nichts lief. Dann durch weitere Internetrecherche
und ausprobieren liefs dann.
to top
#6
Hallo Christa,
Kann schon sein - bei mir war das Gegenteil der Fall. Geht denn das öffnen so? Dann ist doch bestimmt noch mehr zu tun?
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
to top
#7
Hi,

""" Smile

http://www.ms-office-forum.net/forum/sho...p?t=309448
im Beitrag ist auch noch ein Link der dies erklärt.

lg
lg Chris
Feedback nicht vergessen.
3a2920576572206973742064656e20646120736f206e65756769657269672e
 ?mage

to top
#8
Hallöchen,

wichtig ist der Hinweis im von Chris geposteten Link, dass wegen dem Leerzeichen im Pfad zur Anwendung die doppelten Anführungszeichen nötig sind. Das hat diese Bewandnis (suiehe dazu auch der weiterführende Link im zitierten Beitrag):

Beim Shell-Kommando wird der Textteil bis zum ersten Leerzeichen als Anwendung interpretiert und alles folgende als Paramater.

Wenn eine Anwendung mehrere Parameter verarbeitet, dann müsste man auch mit weiteren Anführungszeichen arbeiten, also z.B. in etwa so

Code:
myShell.Run """C:\Program Files (x86)\Notepad++\notepad++.exe"" ""d:\test\test - Kopie.txt"" ""d:\test\test.txt"""

andere Varianten
myShell.Run """C:\Program Files (x86)\Notepad++\notepad++.exe"" d:\test\test - Kopie.txt"
myShell.Run Chr(34) & "C:\Program Files (x86)\Notepad++\notepad++.exe" & Chr(34) & " d:\test\test - Kopie.txt"
myShell.Run "d:\test\npp\notepad++.exe d:\test\test - Kopie.txt", 1, True

Mit dem chr(34) spart man sich ganz clever ein paar Anführungszeichen, weil das im Gegensatz zu dem eigentlichen Anführungszeichen nicht als Textbegrenzungszeichen interpretiert wird. Will man Anführungszeichen übergeben, ohne chr(34), muss man halt ein paar mehr schreiben :-(

Die beiden Run-Parameter am Ende (...1, False) steuern die Anzeige (minimiert = True / Normal = False) sowie das Warteverhalten (warten = True / nicht warten = False)
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
to top


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Externe Daten aus Verbindung - Quelldatei mit relativer Pfadangabe möglich? Lascar 0 30 28.03.2017, 13:16
Letzter Beitrag: Lascar
  Modul vor Ausführen eines Makros/Formulars starten mort92 6 97 24.03.2017, 11:51
Letzter Beitrag: mort92
  Verweis auf externe Tabelle/bestimmter Tab Marquee 29 455 22.03.2017, 15:59
Letzter Beitrag: Marquee
  Fortlaufende Anwendung einer Funktion auf bestimmte Bereiche Tequilawolf 7 113 15.03.2017, 14:19
Letzter Beitrag: Tequilawolf
  Noch nicht vorhandene externe Dateien ohne "Werte aktualisieren" einfügen paul_1001 1 70 03.03.2017, 06:22
Letzter Beitrag: BoskoBiati
  Frage zur Anwendung SVERWEIS und FINDEN MikeMax 11 556 01.12.2016, 18:57
Letzter Beitrag: shift-del
  [VBA] wert eines felds ändern und eine funktion starten sobald timer abläuft Rjinxil 7 489 01.10.2016, 15:10
Letzter Beitrag: Steffl
  Wenn/Dann Formel in Batch starten arthur 11 904 05.09.2016, 16:43
Letzter Beitrag: schauan
  Anwendung eines Filters Kobiii 13 915 23.08.2016, 10:45
Letzter Beitrag: Kobiii
  Bestehenden Solver über Makro starten Lokdog 5 781 08.08.2016, 09:22
Letzter Beitrag: Lokdog

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste