Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Programme über Excelmakro starten

Forumthread: Programme über Excelmakro starten

Programme über Excelmakro starten
27.08.2002 09:42:29
Dirk
Hallo zusammen,
wie kann ich über ein Excelmakro zunächst ein Programm aufrufen z.B. Netscape statt dem Internet Explorer oder einfach ein Worddokument?

Desweiteren habe ich bisher vergeblich versucht über ein Excelmakro Daten aus Excel in definierte Wordfelder zu kopieren. Ist dies überhaupt möglich?

Über Hilfe würde ich mich sehr freuen.
Besten Dank im Voraus
Gruss
Dirk

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Programme über Excelmakro starten
27.08.2002 09:57:25
Lutz
Hai Dirk,
Makro stammt nicht von mir, sondern auch aus diesem Forum.
Vielleicht hilft es Dir.

Aufruf eines externen Programmes aus Excel.

Sub externesProgrammAusExcelAufrufen()
Status = Shell("notepad.exe"; 1)
End Sub
(notepad.exe = Editor)

"Anmerkung: weitere Beispiele: Calc.exe = Taschenrechner; MSPaint.exe
= Zeichenprogramm; sol.exe = Solitär)"


Ciao Lutz

Anzeige
Re: Programme über Excelmakro starten
27.08.2002 10:50:53
Kai
Deklaration:

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

Aufruf:

Call ShellExecute(0&, vbNullString, "Text.doc", vbNullString,
vbNullString, vbNormalFocus)


Ist manchmal besser als der Shell-Befehl, weil das dazugehörige Programm, in diesem Fall Word, automatisch gestartet wird.

Anzeige
Re: Programme über Excelmakro starten
27.08.2002 11:22:42
Dirk
Hallo Lutz,
Hallo Kai,
besten Dank für Eure Antworten. Es scheint also wirklich eine Lösung zu geben. Ich werde es gleich ausprobieren.
Gruss
Dirk
Re: Programme über Excelmakro starten
27.08.2002 12:26:47
Dirk
Hallo noch einmal,
ich habe gerade einmal die genannten Vorschläge ausprobiert und habe zum Aufrufen der Programme auch die Lösung, z.B.:
Sub externesProgrammAusExcelAufrufen()
Status = Shell("C:\Office\WINWORD.EXE", 1)
End Sub

Jedoch kann ich bisher noch keine Worddatei mit aufrufen. Ich mache dies bisher sehr umständlich über einen Hyperlink:
Sub Worddatei_aufrufen()
verz = "test.doc"
Sheets("Tabelle1").Cells(1, 1).Select
' Zelle definieren, in die der Hyperlink geschrieben wird
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
"C:\temp\" & verz
Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
Application.WindowState = xlMaximized
End Sub

Ist es möglich dies einfacher zu erreichen und in das 1. Beispiel einzubinden?
Desweiteren bleibt die Frage, ob Inhalte aus Excel nach Word kopiert werden können?
Besten Dank schon einmal
Gruss
Dirk

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

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:

  1. Öffne Excel und gehe zum Reiter "Entwicklertools".

  2. Klicke auf "Visual Basic", um den VBA-Editor zu öffnen.

  3. Füge ein neues Modul hinzu:

    • Rechtsklick auf "VBAProject (DeineDatei.xlsx)" > Einfügen > Modul.
  4. Schreibe den folgenden Code, um ein externes Programm zu starten:

    Sub externesProgrammAusExcelAufrufen()
       Status = Shell("notepad.exe", 1) ' Notepad öffnen
    End Sub
  5. Um andere Programme zu starten, ersetze "notepad.exe" durch den Pfad des gewünschten Programms, z.B. "C:\Office\WINWORD.EXE" für Word.

  6. 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

  1. 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
  2. Taschenrechner öffnen:

    Sub RechnerStarten()
       Status = Shell("calc.exe", 1) ' Taschenrechner öffnen
    End Sub
  3. 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!

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige