Wie schreibe ich Text in Textmarken?
(Word 97-2003)
Wenn Sie Word VBA Code mit dem Makro-Recorder
aufzeichnen, dann arbeiten Sie mit dem Selection Objekt
von Word. Folgende Zeilen werden aufgezeichnet, wenn Sie per
Gehezu Befehl eine Textmarke ansteuern und an dieser Position Text
einfügen:
Selection.GoTo What:=wdGoToBookmark, Name:="Bereich"
Selection.TypeText Text:="neuer Text im Bereich"
Word scheint hierbei zwischen Bereichs- und
Punkt-Textmarken zu unterscheiden. Bei einer
"Bereichstextmarke" wird der gesamte Bereich markiert
und mit dem neuen Text überschrieben. Bei einer "PunktTextmarke"
wird der Text hinter der Textmarke eingefügt.
Folgende Sub Prozedur arbeitet mit dem
Range-Objekt von Word. Das Range-Objekt ist sehr vielseitig
einsetzbar, es steht für einen beliebigen Bereich im
Word Dokument. Die Ausmaße der Textmarke verwaltet das Bookmark
Objekt in seiner Range Eigenschaft.
Sub WriteInBookmark(ByVal sBookmarkName As String, _
ByVal sBookmarkText As String)
'Schreibt einen neuen Wert in ein vorhandenes Bookmark
If ActiveDocument.Bookmarks.Exists(sBookmarkName) Then
Dim r As Range
Set r = ActiveDocument.Bookmarks(sBookmarkName).Range
r.Text = sBookmarkText
ActiveDocument.Bookmarks.Add sBookmarkName, r
End If
End Sub
Der Unterschied zum o.g. Selection Objekt besteht
darin, dass der Range durch die Textänderung vergrößert oder
auch verkleinert wird und mit diesem Range kann nach der Änderung
die Textmarke neu gesetzt werden.
Wenn Sie diese Sub-Prozedur aus einer
anderen Prozedur aufrufen, werden Sie sehen, dass es für Sie nur
noch eine Textmarkenart gibt, die Bereichsmarke. Ein Punkt
ist nur ein sehr kleiner Bereich.
...
Call WriteInBookmark("Bereich", "neuer Text im Bereich")
Call WriteInBookmark("Punkt", "neuer Text am Punkt")
'auch leer bleibt die Marke erhalten
Call WriteInBookmark("Punkt", "") Für
einen Einstieg in die Word VBA Programmierung empfehlen wir
natürlich ein Seminar. Wenn
Sie eigentlich wichtigeres zu tun haben, kümmern wir uns gerne um
die Lösung Ihres Word VBA Problems.
|