Die Sache mit Bookmarks ist, sie verschwinden wenn man ihnen etwas zuweist.
Oftmals will man diese aber behalten, weshalb ich dazu gerne eine Hilfsfunktion verwende.
Public Sub AlterBookmark(ByVal Name As String, ByVal Expression As String, Optional ByVal Document As Word.Document)
If Document Is Nothing Then Set Document = ActiveDocument
If Not Document.Bookmarks.Exists(Name) Then
Err.Raise 5&, "UpdateBookmark"
Else
Dim rng As Word.Range
Set rng = Document.Bookmarks(Name).Range
rng.Text = Expression
Call Document.Bookmarks.Add(Name, rng)
End If
End Sub
Diese Prozedur ändert den Inhalt einer Bookmark und hält diese am Leben (der Bookmark-Eintrag wird ner erstellt).
Eine Hilfsfunktion zum Hinzufügen könnte so dann aussehen:
Public Sub AppendToBookmark(ByVal Name As String, ByVal Expression As String, Optional ByVal NewLine As Boolean = True, Optional ByVal Document As Word.Document)
If Document Is Nothing Then Set Document = ActiveDocument
If Not Document.Bookmarks.Exists(Name) Then
Err.Raise 5&, "UpdateBookmark"
Else
Dim rng As Word.Range
Set rng = Document.Bookmarks(Name).Range
If NewLine Then
rng.Text = rng.Text & vbNewLine & Expression
Else
rng.Text = rng.Text & Expression
End If
Call Document.Bookmarks.Add(Name, rng)
End If
End Sub
Das ganze dann in Aktion:
Option Explicit
Sub Demo()
AlterBookmark "BM1", "This_Is_The_Start"
AppendToBookmark "BM1", "Line2"
AppendToBookmark "BM1", "Line3"
AppendToBookmark "BM1", "Line4"
AppendToBookmark "BM1", "" 'empty new line
End Sub
|