Programme über Excelmakro starten
Schritt-für-Schritt-Anleitung
Um ein externes Programm über ein Excel-Makro zu starten, kannst Du den Shell
-Befehl in VBA verwenden. Hier ist eine einfache Anleitung:
-
Öffne Excel und gehe zum Reiter "Entwicklertools".
-
Klicke auf "Visual Basic", um den VBA-Editor zu öffnen.
-
Füge ein neues Modul hinzu:
- Rechtsklick auf "VBAProject (DeineDatei.xlsx)" > Einfügen > Modul.
-
Schreibe den folgenden Code, um ein externes Programm zu starten:
Sub externesProgrammAusExcelAufrufen()
Status = Shell("notepad.exe", 1) ' Notepad öffnen
End Sub
-
Um andere Programme zu starten, ersetze "notepad.exe"
durch den Pfad des gewünschten Programms, z.B. "C:\Office\WINWORD.EXE"
für Word.
-
Führe das Makro aus, indem Du auf "Ausführen" klickst oder F5 drückst.
Häufige Fehler und Lösungen
- Fehler: Programm startet nicht
- Lösung: Überprüfe den Pfad des Programms und stelle sicher, dass es korrekt eingegeben wurde.
- Fehler: Excel reagiert nicht
- Lösung: Verwende
Application.Wait
vor dem Shell
-Befehl, um Excel Zeit zu geben, bevor das Programm gestartet wird.
Alternative Methoden
Anstatt den Shell
-Befehl zu verwenden, kannst Du auch die ShellExecute
-Funktion nutzen, um Programme zu starten:
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Sub ProgrammStarten()
Call ShellExecute(0&, vbNullString, "C:\temp\Text.doc", vbNullString, vbNullString, vbNormalFocus)
End Sub
Diese Methode ist besonders nützlich, wenn Du Word-Dokumente oder andere Dateien direkt öffnen möchtest.
Praktische Beispiele
-
Word-Dokument öffnen:
Sub Worddatei_aufrufen()
Dim verz As String
verz = "test.doc" ' Dateiname
Shell "C:\Office\WINWORD.EXE " & "C:\temp\" & verz, vbNormalFocus
End Sub
-
Taschenrechner öffnen:
Sub RechnerStarten()
Status = Shell("calc.exe", 1) ' Taschenrechner öffnen
End Sub
-
Solitär spielen:
Sub SolitaerStarten()
Status = Shell("sol.exe", 1) ' Solitär-Spiel starten
End Sub
Tipps für Profis
- Makros speichern: Stelle sicher, dass Du Deine Excel-Datei im
.xlsm
-Format speicherst, um die VBA-Makros zu behalten.
- Fehlerbehandlung: Implementiere
On Error Resume Next
, um Fehler beim Ausführen von Makros zu ignorieren.
- Schnelle Ausführung: Verwende
Application.ScreenUpdating = False
, um die Bildschirmaktualisierung während der Makroausführung zu deaktivieren, was die Ausführungsgeschwindigkeit erhöht.
FAQ: Häufige Fragen
1. Wie kann ich mehrere Programme gleichzeitig starten?
Du kannst mehrere Shell
-Befehle nacheinander in Deinem Makro platzieren:
Sub MehrereProgrammeStarten()
Shell "notepad.exe", vbNormalFocus
Shell "calc.exe", vbNormalFocus
End Sub
2. Kann ich Daten aus Excel in Word-Felder kopieren?
Ja, das ist möglich. Du kannst ein Makro schreiben, das die Daten kopiert und in die Word-Dokumentfelder einfügt. Es erfordert jedoch etwas zusätzliche Programmierung mit Word-Objekten.
3. Wie starte ich ein Programm mit bestimmten Parametern?
Du kannst Parameter in der Shell
-Funktion oder in ShellExecute
angeben. Beispiel:
Shell "notepad.exe " & "C:\temp\Text.txt", vbNormalFocus
Mit diesen Informationen kannst Du nun erfolgreich Programme über Excel-Makros starten und verschiedene Aufgaben automatisieren!