If you want to be able to click on some text and have Word take you to an external link (e.g. Internet URL) or to a certain position within the current document, you need to use hyperlinks. Adding a hyperlink to a Word document is pretty simple, actually it is as simple as this:

object range = Globals.ThisDocument.Range(ref start, ref end);

object subAddress = "BookmarkName";

Globals.ThisDocument.Hyperlinks.Add(range, ref missing,

    ref subAddress, ref missing, ref missing, ref missing);

The above code will make the text in the range that starts at "start" and ends at "end" to be a hyperlink that points to the location of the bookmark with the name "BookmarkName".

The issue with the above code is that the style "Hyperlink" is automatically applied to the specified range, overriding the text's current style (only font related settings are affected because "Hyperlink" is a character style). Even if you re-apply the style after you add the hyperlink, you will not get far.

The way around this issue is to create a new style that is based on the style "Hyperlink" and change all of its settings to be the same the in the style you want your text to have. Then, after adding the hyperlink to the document, apply first the new "Hyperlink" based style to the range and then the style you ultimately want your range to have.

// Create the hyperlink

object range = Globals.ThisDocument.Range(ref start, ref end);

object subAddress = "BookmarkName";

Globals.ThisDocument.Hyperlinks.Add(range, ref missing,

    ref subAddress, ref missing, ref missing, ref missing);

 

// Apply the correct style to the hyperlink

string styleName = "StyleBasedOnHyperlink";

((Range)range).set_Style(ref styleName);

styleName = "StyleYouUltimatelyWantToUse";

((Range)range).set_Style(ref styleName);