Search code examples
c#.netvb.netms-wordbookmarks

how to insert bookmark in word using c#/VB.NET


I am trying to add bookmarks in word document using C# but it doesn't work and I can't find any help neither in msdn documentation nor on internet. Here is how I am trying to do.

I am reading word documents and then search a keyword in that document and then I convert that text to a hyperlink and that works great. Now, I want to create that text to a bookmark instead of hyperlink. I am doing all this in C#


Solution

  • Dim _wordApp As ApplicationClass
    Dim _doc As Document
    Dim pos, len As Integer
    Dim reg As Regex
    Dim bookmarkName As String
    Dim rng As Object
    Dim search As String = "Some Text to search"
    
    Dim nullobj As Object = System.Reflection.Missing.Value
    Dim isReadOnly As Object = False
    _wordApp = New ApplicationClass()
    
    'open the word document
    _doc = _wordApp.Documents.Open(fileName, isReadOnly, nullobj, nullobj, nullobj, _
         nullobj, nullobj, nullobj, nullobj, nullobj, nullobj, _
         nullobj, nullobj, nullobj, nullobj, nullobj)
    
        _wordApp.Visible = False
    
    
    ' keyword that you want to search
    reg = New Regex(search)
    ' find the text in word file
    Dim m As Match = reg.Match(_doc.Range.Text, 0)
    pos = m.Index
    
    ' start is the starting position of the token in the content...
    len = search.Length
    ' select the text
    rng = _doc.Range(pos, len + pos)
    
    bookmarkName = "MyBookmarkName"
    _doc.Bookmarks.Add(bookmarkName, rng)