Word-Dokumente aus Excel-Makros (Microsoft Excel)
Eric hat eine Excel-Datenbank mit Unternehmensinformationen. Er möchte ein Excel-Makro verwenden, um Adressen und Informationen aus der Datenbank in verschiedene Word-Dokumente zu kopieren. Eric ist neugierig, wie er ein Excel-Makro dazu bringen kann, ein bestimmtes Word-Dokument zu öffnen, in das die Informationen eingefügt werden.
Eine Möglichkeit, diese Aufgabe zu erfüllen, besteht darin, Excel einfach nicht zu verwenden. Verwenden Sie stattdessen den Seriendruck von Word, um Informationen aus einer Excel-Datenbank abzurufen.
Dieser Ansatz funktioniert am besten, wenn Sie ein Dokument aus genau definierten Informationen erstellen. Wenn Sie jedoch eine Reihe von Dokumenten öffnen und die Daten aus der Excel-Datenbank in die Dokumente kopieren müssen, reicht der Seriendruck nicht aus.
Word hat einen speziellen Namen für die Verwendung von Makros für die Arbeit mit verschiedenen Office-Anwendungen: Office-Automatisierung. Das Erstellen von Office Automation-Makros ist etwas komplexer als das Erstellen eines Makros, das ausschließlich in einer bestimmten Anwendung wie Excel funktioniert. Möglicherweise möchten Sie eine kostenlose Hilfedatei herunterladen, die zahlreiche Informationen zu Office Automation-Anwendungen enthält. Sie können die Datei auf der folgenden Microsoft-Seite herunterladen:
http://support.microsoft.com/kb/302460
Das grundlegende Verfahren zum Öffnen eines Word-Dokuments in einem Excel-Makro besteht darin, ein Objekt zu erstellen, das auf die Word-Anwendung verweist, und dieses Objekt dann zum Öffnen des Dokuments zu verwenden. Der folgende Code veranschaulicht dieses Konzept:
Sub OpenWord() Dim wdApp As Object Dim wdDoc As Object Set wdApp = CreateObject("Word.application") Set wdDoc = wdApp.Documents.Open _ (FileName:="C:\Path\myTestDoc.doc") ' put your code here for working with Word ' This is Word VBA code, not Excel code wdDoc.Close savechanges:=False Set wdDoc = Nothing wdApp.Quit Set wdApp = Nothing End Sub
Sie müssen den Pfad und den Dokumentnamen des Dokuments ändern, das Sie öffnen möchten. Dieser Code zeigt jedoch sehr gut, was zum Öffnen des Dokuments getan werden muss. Wie geschrieben, wird das Word-Dokument (in der Tat die gesamte Word-Anwendung) nicht auf dem Bildschirm angezeigt. Wenn Sie die Anwendung lieber sichtbar haben möchten, sollten Sie diese Codezeile am Anfang des Makros verwenden:
wdApp.Visible = True
Ein anderer Ansatz zum Arbeiten mit einer Word-Datei in Ihrem Excel-Makro besteht darin, DDE und die SendKeys-Funktion zum Kopieren der Informationen zu verwenden.
Betrachten Sie den folgenden DDE-Befehl:
ChannelNumber=Application.DDEInitiate{ _ app:="WinWord", topic:=FullPath
Die DDEInitiate-Methode verwendet zwei Eigenschaften: App und Thema. Die App-Eigenschaft gibt die Anwendung an, die Sie über DDE öffnen. Typische Beispiele könnten „calc“ für den Rechner oder „WinWord“ (in diesem Fall)
sein für die Word-Anwendung. Die Topic-Eigenschaft gibt den vollständigen Pfad zu der Dokumentdatei an, die Sie öffnen. In diesem Fall ist der vollständige Pfad in der Variablen FullPath enthalten.
Mit dieser Methode können Sie ein Dokument öffnen und dann mit SendKeys Informationen in dieses Dokument kopieren:
Sub PasteExcel2Word() Dim channelNumber As String 'Application Handle Dim FullPath As String FullPath = 'C:\MyFolder\MyFile.Doc' 'Replace above with a file or loop of files Selection.Copy 'Assumes you hilighted what you want copied channelNumber = Application.DDEInitiate( _ app:="WinWord", topic:=FullPath SendKeys "^v", False Application.DDETerminate channelNumber End Sub
Die Kopiermethode wird verwendet, um Informationen in die Zwischenablage zu kopieren. Anschließend verwendet SendKeys ^ v (Strg + V), um die Informationen in das mit DDEInitiate geöffnete Word-Dokument einzufügen.
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (2423) gilt für Microsoft Excel 97, 2000, 2002 und 2003.