Ich möchte aus Excel heraus ein Programm starten (FEM-Programm), dieses dann wieder beenden und die Ergebnisse (Textdatei) in Excel einlesen und den Variablen zuordnen!
Kann mir jemand den Befehlscode dafür nennen!
Danke im voraus!
Gruß Ludwig
Sub MSAccess()
Dim E
E = Shell("C:\Programme\MSOffice.97\Office\MSACCESS.EXE", 3)
End Sub
Um ein externes Programm über Excel zu starten, kannst du VBA (Visual Basic for Applications) verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:
Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
Füge ein neues Modul hinzu:
Einfügen und wähle Modul.Gib den folgenden Code ein:
Sub externesProgrammStarten()
Dim E
E = Shell("cmd.exe /k C:\USR\TW2.EXE", vbNormalFocus)
End Sub
Ändere den Pfad zu deinem Programm, falls notwendig.
Starte das Makro durch Drücken von F5 oder durch Ausführen im Excel-Interface.
Dieser VBA-Code verwendet den Shell-Befehl, um das gewünschte Programm zu starten. Achte darauf, dass der Pfad und der Programmname korrekt sind.
Programm startet nicht:
Shell-Befehl. Stelle sicher, dass die Datei existiert und der Pfad korrekt eingegeben ist.DOSBox läuft nicht:
-conf-Datei angegeben hast.Fehlermeldung bei der Ausführung:
/k anstelle von /c im cmd, um sicherzustellen, dass die DOSBox offen bleibt.Wenn der Shell-Befehl nicht funktioniert, gibt es alternative Ansätze:
Das Programm direkt über die Windows-Ausführen-Funktion starten:
E = Shell("C:\USR\DOSBox-0.63\DOSBOX.EXE -conf C:\Pfad\zu\deiner\datei.conf", vbNormalFocus)
Verwende WScript.Shell:
Dim WshShell As Object
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "C:\USR\TW2.EXE"
Um ein externes Programm mit Parametern zu starten, kannst du den folgenden Code verwenden:
Sub programmMitParameternStarten()
Dim E
E = Shell("cmd.exe /k C:\USR\DOSBox-0.63\DOSBOX.EXE -conf C:\Pfad\zu\deiner\datei.conf", vbNormalFocus)
End Sub
Hierbei wird das Programm DOSBox mit einer Konfigurationsdatei gestartet, die die zu ladende EXE-Datei enthält.
Parameter übergeben: Wenn du Parameter an das auszuführende Programm übergeben möchtest, kannst du das direkt im Shell-Befehl tun. Zum Beispiel:
E = Shell("C:\USR\TW2.EXE -parameter", vbNormalFocus)
Fehlerprotokollierung: Füge eine Fehlerbehandlung in dein Makro ein, um Probleme schneller zu identifizieren:
On Error Resume Next
E = Shell("C:\USR\TW2.EXE", vbNormalFocus)
If Err.Number <> 0 Then
MsgBox "Fehler: " & Err.Description
End If
1. Wie kann ich ein Java-Programm aus Excel starten?
Du kannst ein Java-Programm ähnlich starten, indem du den Java-Interpreter im Shell-Befehl verwendest:
E = Shell("java -jar C:\Pfad\zu\deinem\programm.jar", vbNormalFocus)
2. Was ist der Unterschied zwischen /k und /c in cmd?
Der Parameter /k lässt die Eingabeaufforderung offen, während /c die Eingabeaufforderung nach Ausführung des Befehls schließt.
3. Wie kann ich mehrere Programme gleichzeitig starten?
Du kannst mehrere Shell-Befehle hintereinander ausführen oder sie in einer Schleife abarbeiten.
4. Funktioniert dieser Ansatz in allen Excel-Versionen?
Ja, der Einsatz von VBA zur Ausführung von externen Programmen funktioniert in den meisten modernen Excel-Versionen.