Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excel Makro aus Word VBA aufrufen

Forumthread: Excel Makro aus Word VBA aufrufen

Excel Makro aus Word VBA aufrufen
04.08.2022 16:46:50
Andreas
Hallo VBA Freunde,
nachdem ich mich in letzter Zeit vermehrt mit PowerQuery beschäftigte gab es heute mal wieder Gelegenheit VBA in Excel zu programmieren. Der Code in Excel läuft auch. Er kommuniziert mit MS Word. Um das Konstrukt noch weiter zu verbessern möchte ich den VBA Code in Excel auch aus Word heraus aufrufen können. Hierzu habe ich mir ein paar meiner alten Beispiele angesehen und auf herber.de stackoverflow und computerbase recherchiert. Die umgekehrte Richtung 'Word Makro aus Excel aufrufen' wird oft diskutiert, aber ich habe die Gegenrichtung 'Excel Makro aus Word aufrufen' nicht zum Laufen bekommen.
Dies ist der Word VBA Code:

Sub CallExcel()
Dim xlApp As Object
'Set xlApp = CreateObject("Excel.Application")
'xlApp.Run "C:\_SGQMS\1 Temp\Test.xlsm!modTools.Test"
Set xlApp = GetObject(, "Excel.Application")
xlApp.Run "Test.xlsm!.modTools.Test"
Set xlApp = Nothing
End Sub
Der aufzurufende Code in der schon geöffneten Excel Datei ist dieser (nur ein kleiner Debug.Print): https://www.herber.de/bbs/user/154511.xlsm
Excel läuft bereits, daher habe ich 'GetObject' verwandt. Auch die Datei 'Test.xlsm!' ist immer offen. Insgesamt hatte ich drei verschiedene Fehlermeldung, die letzte war nun 'Aufruf wurde durch den Aufgerufenen abgelehnt'. Ich habe es nicht geschafft diese Fehlermeldung zielführend zu interpretieren und den Code zum Laufen zu bekommen.
Da ich denke, daß diese beiden MS Produkte in beide Richtungen in ihren VBA Codes kommunizieren können, würde ich mich sehr freuen, wenn mich ein erfahrener Forumsteilnehmer mir die korrekte Richtung für einen funktionierenden Aufruf aufzeigt.
Vielen Dank & Grüße, Andreas Hanisch
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel Makro aus Word VBA aufrufen
04.08.2022 17:11:46
Nepumuk
Hallo Andreas,
so:

xlApp.Run "Test.xlsm!modTools.Test"
Gruß
Nepumuk
AW: Excel Makro aus Word VBA aufrufen
04.08.2022 17:20:10
Andreas
Hallo Nepumuk,
vielen Dank für Deine Rückmeldung.
Leider funktioniert diese Änderung nicht. Der Code läuft einige Sekunden bevor er wieder den Laufzeitfehler
-2147418111 Automatisierungsfehler: Aufruf wurde durch Aufgerufenen abgelehnt
wirft.
Was kann das sein? Hat es bei Dir auf dem Rechner funktioniert?
Vielen Dank, Andreas
Anzeige
AW: Excel Makro aus Word VBA aufrufen
04.08.2022 17:27:00
Nepumuk
Hallo Andreas,
ja, klappt einwandfrei. Ist die Mappe auch in einem "vertrauenswürdigen" Ordner gespeichert bzw. (wie bei mir). digital signiert?
Ich habe allerdings Office 365 Privat.
Gruß
Nepumuk
AW: Excel Makro aus Word VBA aufrufen
04.08.2022 18:02:26
Andreas
Heureka !!!
Nach Deiner Bestätigung habe ich einen einfachen Testcode in Word VBA geschrieben: Excel Workbooks zählen.
Lief lange und das Ergebnis war 0: Bei drei geöffneten xlsx und xlsm Dateien. Das machte mich stutzig und ich erinnerte mich an einen Hinweis, den ich mir selbst eigentlich besser merken wollte: 'Wenn es beim Programmieren unlogische und nicht erklärbare Fehler gibt, Andreas, dann starte den Computer neu...'
Bingo!
Ich hatte den letzte Nacht nur im Hybernate und heute auch schon wieder unzählige Dateien geöffnet und geschlossen. Jetzt nach dem Neustart, da lief Deine Zeile problemlos.
Habe großen Dank Nepumuk!
Ich ärgere mich über mich selber, daß ich den Neustart wie eigentlich schon zum Mittag angedacht, nicht durchführte. Ich hoffe, ich merke mir das jetzt besser. Aber es überwiegt die Freude, daß es nun läuft.
Nochmals Danke & ich wünsche Dir und allen Forumsfreunden einen tollen Abend heute und ein baldiges, gutes Wochenende.
Beste Grüße aus Braunschweig, Andreas Hanisch
Anzeige
AW: Excel Makro aus Word VBA aufrufen
04.08.2022 18:52:50
snb
Reicht schon:

Sub M_snb()
GetObject("C:\_SGQMS\1 Temp\Test.xlsm").application.Run "Test.xlsm!modTools.Test"
End Sub

Nachtrag
05.08.2022 09:43:40
snb
Warum ein Makro in einer Excel Datei starten wenn man alle Excel VBA in ein Word Makro schreiben und ausführen lassen kann ?
;
Anzeige
Anzeige

Infobox / Tutorial

Excel Makro aus Word VBA aufrufen


Schritt-für-Schritt-Anleitung

  1. Öffne Microsoft Word und erstelle ein neues Dokument.

  2. Öffne den VBA-Editor: Drücke ALT + F11.

  3. Füge ein neues Modul hinzu: Klicke auf Einfügen > Modul.

  4. Füge den folgenden Code ein:

    Sub CallExcel()
       Dim xlApp As Object
       Set xlApp = GetObject(, "Excel.Application")
       xlApp.Run "Test.xlsm!modTools.Test"
       Set xlApp = Nothing
    End Sub
  5. Speichere die Word-Datei und stelle sicher, dass Excel mit der Datei Test.xlsm geöffnet ist.

  6. Führe das Makro aus: Gehe zu Entwicklertools > Makros, wähle CallExcel aus und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Fehler: Aufruf wurde durch den Aufgerufenen abgelehnt
    Dieser Fehler tritt häufig auf, wenn die Excel-Datei nicht im vertrauenswürdigen Ordner gespeichert ist oder die Datei nicht digital signiert ist. Stelle sicher, dass Deine Datei diese Bedingungen erfüllt.

  • Lösung: Starte Deinen Computer neu. Manchmal können unlogische Fehler durch einen einfachen Neustart behoben werden.


Alternative Methoden

Du kannst auch den folgenden VBA-Code verwenden, um das Excel-Makro aus Word aufzurufen:

Sub M_snb()
    GetObject("C:\_SGQMS\1 Temp\Test.xlsm").Application.Run "Test.xlsm!modTools.Test"
End Sub

Mit dieser Methode wird die Excel-Anwendung direkt angesprochen, was in manchen Fällen stabiler sein kann.


Praktische Beispiele

Hier sind einige nützliche Beispiele, wie Du Excel-Makros aus Word heraus aufrufen kannst:

  1. Aufruf eines Lottoprogramms: Du kannst ein Makro erstellen, das ein Lottoprogramm in Excel ausführt, um Zufallszahlen zu generieren.

  2. Word Hilfe aufrufen: Wenn Du häufig mit Word und Excel arbeitest, kannst Du auch Word-Makros erstellen, die spezifische Excel-Aktionen ausführen.


Tipps für Profis

  • Verwende digitale Signaturen: Wenn Deine Makros digital signiert sind, erhöht dies die Sicherheit und verringert die Wahrscheinlichkeit von Sicherheitswarnungen.

  • Debugging: Nutze Debug.Print, um Ausgaben in das Direktfenster zu schreiben und den Status Deiner Variablen während der Ausführung zu prüfen.


FAQ: Häufige Fragen

1. Warum funktioniert der Aufruf nicht, obwohl Excel geöffnet ist?
Möglicherweise hast Du die Datei nicht im richtigen Ordner gespeichert oder die Datei ist nicht digital signiert.

2. Kann ich mehrere Excel-Makros aus einem Word-Makro aufrufen?
Ja, Du kannst mehrere xlApp.Run Befehle in Deinem Word-Makro hintereinander ausführen, um verschiedene Excel-Makros zu starten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige