Kommunizieren mit anderen Anwendungen
Zusätzlich zur Arbeit mit Word-Daten möchten Sie möglicherweise, dass Ihre Anwendung Daten mit anderen Anwendungen wie Excel, PowerPoint oder Access austauscht. Sie können mit anderen Anwendungen kommunizieren, indem Sie Automatisierung (früher OLE-Automation) oder Dynamischen Datenaustausch (DDE, Dynamic Data Exchange) verwenden.
Durch Automatisierung können Sie Daten zurückgeben, bearbeiten und exportieren, indem Sie Objekte, Eigenschaften und Methoden einer anderen Anwendung ansprechen. Anwendungsobjekte, die von einer anderen Anwendung angesprochen werden können, werden Automatisierungsobjekte genannt.
Der erste Schritt zum Verfügbarmachen von Word für eine andere Anwendung für Automation besteht darin, einen Verweis auf das Word Application-Objekt zu erstellen. In Visual Basic verwenden Sie die CreateObject - oder GetObject-Funktion von Visual Basic, um einen Verweis auf das Word Application-Objekt zurückzugeben. In einer Excel-Prozedur können Sie beispielsweise die folgende Anweisung verwenden.
Set wrd = CreateObject("Word.Application")
Mit dieser Anweisung wird das Application-Objekt in Word für die Automatisierung verfügbar gemacht. Wenn Sie die Objekte, Eigenschaften und Methoden des Application-Objekts von Word verwenden, können Sie Word steuern. Mit der folgenden Anweisung wird beispielsweise ein neues Word-Dokument erstellt.
wrd.Documents.Add
Mit der Visible-Eigenschaft lassen Sie das neue Dokument nach dem Erstellen sichtbar werden.
wrd.Visible = True
Die CreateObject-Funktion startet eine Word-Sitzung, die Automation nicht schließt, wenn die Objektvariable, die auf das Application-Objekt verweist, abläuft. Wenn der Objektverweis auf das Visual Basic-Schlüsselwort Nothing festgelegt wird, wird Word nicht geschlossen. Verwenden Sie stattdessen die Quit-Methode , um die Word-Anwendung zu schließen. Im folgenden Excel-Beispiel wird der Word-Startpfad angezeigt. Die Quit-Methode wird zum Schließen der neuen Instanz von Word verwendet, nachdem der Startpfad angezeigt wurde.
Set wrd = CreateObject("Word.Application")
MsgBox wrd.Options.DefaultFilePath(wdStartupPath)
wrd.Quit
Zum Austauschen von Daten mit einer anderen Anwendung mithilfe von Automation aus Word erhalten Sie zunächst einen Verweis auf die Anwendung mithilfe der CreateObject - oder GetObject-Funktion . Anschließend können Sie mithilfe der Objekte, Eigenschaften und Methoden der anderen Anwendung Informationen hinzufügen, ändern oder löschen. Wenn Sie die Änderungen abgeschlossen haben, schließen Sie die Anwendung. Im folgenden Word-Beispiel wird der Excel-Startpfad angezeigt. Verwenden Sie die Set-Anweisung von Visual Basic mit dem Nothing-Schlüsselwort , um eine Objektvariable zu löschen, was die gleiche Auswirkung wie das Schließen der Anwendung hat.
Set myobject = CreateObject("Excel.Application")
MsgBox myobject.StartupPath
Set myobject = Nothing
Wenn eine Anwendung Automation nicht unterstützt, kann DDE eine Alternative sein. DDE ist ein Protokoll, das es zwei Anwendungen ermöglicht, durch kontinuierlichen und automatischen Austausch von Daten über einen DDE-Kanal zu kommunizieren. Um eine DDE-Konversation zwischen zwei Anwendungen zu steuern, richten Sie einen Kanal ein, wählen ein Thema aus, fordern Daten an und senden sie und schließen dann den Kanal. In der folgenden Tabelle sind die Aufgaben aufgeführt, die Word mit DDE ausführt, und die Methoden, die zum Steuern der einzelnen Aufgaben in Visual Basic verwendet werden.
Sicherheitshinweis
Aufgabe | Methode |
---|---|
Starten von DDE | DDEInitiate |
Abrufen von Text aus einer anderen Anwendung | DDERequest |
Senden von Text an eine andere Anwendung | DDEPoke |
Ausführen eines Befehls in einer anderen Anwendung | DDEExecute |
Schließen des DDE-Kanals | DDETerminate |
Schließen aller DDE-Kanäle | DDETerminateAll |
Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.