How to: Programmatically Update Bookmark Text
You can insert text into a placeholder bookmark in a Microsoft Office Word document so that you can retrieve the text at a later time, or to replace text in a bookmark. If you are developing a document-level customization, you can also update text in a Bookmark control that is bound to data. For more information, see Binding Data to Controls in Office Solutions.
Applies to: The information in this topic applies to document-level projects and application-level projects for Word 2013 and Word 2010. For more information, see Features Available by Office Application and Project Type.
The bookmark object can be one of two types:
A Bookmark host control.
Bookmark controls extend native Bookmark objects by enabling data binding and exposing events. For more information about host controls, see Host Items and Host Controls Overview.
A native Bookmark object.
Bookmark objects do not have events or data binding capabilities.
When you assign text to a bookmark, the behavior differs between a Bookmark and a Bookmark. For more information, see Bookmark Control.
Using Host Controls
To update bookmark contents using a Bookmark control
Create a procedure that takes a bookmark argument for the name of the bookmark, and a newText argument for the string to assign to the Text property.
Note
Assigning text to the Bookmark.Text or Bookmark.FormattedText property of a Bookmark control does not cause the bookmark to be deleted.
Shared Sub BookMarkReplace( _ ByRef bookmark As Microsoft.Office.Tools.Word.Bookmark, _ ByVal newText As String)
static void BookMarkReplace( ref Microsoft.Office.Tools.Word.Bookmark bookmark, string newText) {
Assign the newText string to the Text property of the Bookmark.
bookmark.Text = newText End Sub
bookmark.Text = newText; }
Using Word Objects
To update bookmark contents using a Word Bookmark object
Create a procedure that has a bookmark argument for the name of the Bookmark, and a newText argument for the string to assign to the Range.Text property of the bookmark.
Note
Assigning text to a native Word Bookmark object causes the bookmark to be deleted.
Friend Sub BookMarkReplaceNative( _ ByVal bookmark As Word.Bookmark, _ ByVal newText As String)
internal void BookMarkReplaceNative( Word.Bookmark bookmark, string newText) {
Assign the newText string to the Range.Text property of the bookmark, which automatically deletes the bookmark. Then re-add the bookmark to the Bookmarks collection.
The following code example can be used in a document-level customization.
Dim rng As Word.Range = bookmark.Range Dim bookmarkName As String = bookmark.Name bookmark.Range.Text = newText Me.Bookmarks.Add(Name:=bookmarkName, Range:=rng) End Sub
object rng = bookmark.Range; string bookmarkName = bookmark.Name; bookmark.Range.Text = newText; this.Bookmarks.Add(bookmarkName, ref rng); }
The following code example can be used in an application-level add-in. This example uses the active document.
Dim rng As Object = bookmark.Range Dim bookmarkName As String = bookmark.Name bookmark.Range.Text = newText Me.Application.ActiveDocument.Bookmarks.Add(Name:=bookmarkName, Range:=rng) End Sub
object rng = bookmark.Range; string bookmarkName = bookmark.Name; bookmark.Range.Text = newText; Word.Document document = this.Application.ActiveDocument; document.Bookmarks.Add(bookmarkName, ref rng); }
See Also
Tasks
How to: Programmatically Insert Text into Word Documents