beraten
programmieren
implementieren
trainieren
Excel und Word-Textmarken
Allgemein
Wenn Sie Inhalte einer Exceldatei in ein Worddokument einfügen wollen (z. B. die Daten einer Rechnung), so empfiehlt es sich, das Worddokument als Wordvorlage zu speichern. Jene Positionen, an denen die Inhalte aus Excel eingefügt werden sollen, kennzeichnen Sie mit Hilfe von Word-Textmarken (Bookmark).
Sie können dann per Code ein neues Worddokument basierend auf der Wordvorlage öffnen, und über die Auflistung Bookmarks des Worddokuments die entsprechenden Inhalte einfügen.
Erstellen von Textmarken
öffnen Sie das gewünschte Worddokument und setzen Sie den Cursor an die Position, an der die Textmarke eingefügt werden soll. Klicken Sie im Menüband auf der Registerkarte Einfügen auf den Befehl Textmarke. Es öffnet sich folgender Dialog:
In obigem Dialog habe ich die Bezeichnung MeineTextmarke hinzugefügt.
Um die eingefügten Textmarken im Formular zu sehen, wechseln Sie in die Word-Optionen und wählen das Register Erweitert aus. Scrollen Sie nach unten zum Bereich Dokumentinhalt anzeigen und aktivieren Sie die Option Textmarken anzeigen.
Sie sollten jetzt im Dokument die Textmarken als graue vertikale Striche sehen.
Zugriff auf Textmarken
Die nachfolgenden Beispiele gehen davon aus, dass Sie eine Wordvorlage mit der Bezeichnung MeineVorlage.dotx am Laufwerk C:\ abgelegt haben. Diese Wordvorlage enthält eine Textmarke mit der Bezeichnung MeineTextmarke.
Das Word Dokumentobjekt Document stellt eine Auflistung Bookmarks zur Verfügung. Der Zugriff auf eine einzelne Textmarke (Bookmark) erfolgt über einen 1-basierten Index oder über den Namen der Textmarke.
In den folgenden Beispielen sind die Grundaktionen immer die gleichen:
- Erstellen einer Wordinstanz
- Sichtbarmachen der Wordinstanz
- Erstellen eines neuen Worddokuments basierend auf der Vorlage C:\MeinDokument.dotx
- Die Anweisungen, die an Hand des Beispiels verdeutlicht werden sollen
Im folgenden Beispiel wird die Anzahl der Textmarken im Dokument im Direktfenster ausgegeben.
'Anzahl der Textmarken
Dim wdApp As Word.Application
Dim wdDoc As Word.Document
Dim wdBookmark As Word.Bookmark
Set wdApp = New Word.Application
wdApp.Visible = True
Set wdDoc = wdApp.Documents.Add("C:\MeineVorlage.dotx")
Debug.Print wdDoc.Bookmarks.Count
Im folgenden Beispiel werden die Namen aller Textmarken im Direktfenster ausgegeben:
'Ausgabe der Namen aller Textmarken
Dim wdApp As Word.Application
Dim wdDoc As Word.Document
Dim wdBookmark As Word.Bookmark
Set wdApp = New Word.Application
wdApp.Visible = True
Set wdDoc = wdApp.Documents.Add("C:\MeineVorlage.dotx")
For Each wdBookmark In wdDoc.Bookmarks
Debug.Print wdBookmark.Name
Next
Beachten Sie den Datentyp Word.Bookmark der Variable wdBookmark.
Um Text nach bzw. vor einer Textmarke per Code einzufügen, benötigen Sie die Eigenschaft Range der Textmarke. Das Range-Objekt besitzt die beiden Methoden InsertBefore und InsertAfter, die als Argument den gewünschten Text entgegennehmen. Beachten Sie, dass der gewünschte Text nicht in runden Klammern angegeben wird.
'Einfügen von Text nach einer Textmarke
Dim wdApp As Word.Application
Dim wdDoc As Word.Document
Set wdApp = New Word.Application
wdApp.Visible = True
Set wdDoc = wdApp.Documents.Add("C:\MeineVorlage.dotx")
wdDoc.Bookmarks("MeineTextmarke").Range.InsertAfter "Mein Text"
An Stelle eines konstanten Textes können Sie auch die Inhalte einer Zelle nach der Textmarke einfügen. Im folgenden Beispiel wird der Inhalt der Zelle A1 nach der Textmarke eingefügt:
'Einfügen von Text nach einer Textmarke
Dim wdApp As Word.Application
Dim wdDoc As Word.Document
Set wdApp = New Word.Application
wdApp.Visible = True
Set wdDoc = wdApp.Documents.Add("C:\MeineVorlage.dotx")
wdDoc.Bookmarks("MeineTextmarke").Range.InsertAfter Range("A1").Value