При вставке гиперссылки диапазон выбора после вставки находится в конце гиперссылки.Итак, в вашем коде, когда вы применяете свой стиль, вы применяете его к точке вставки в конце вашей гиперссылки.
Чтобы получить диапазон гиперссылки, чтобы вы могли применить к нему стиль,вы можете либо переместить начало диапазона выделения, либо, что еще лучше, зафиксировать гиперссылку при ее вставке.
В первом случае вы добавите строку
Selection.MoveStart unit:=wdWord, count:=-1
после оператора добавленияи перед строкой, которая применяет стиль.
Лучший способ выполнить вашу задачу, как показано ниже:
Option explicit
Sub test()
InsertHyperlinkWithStyle Selection.Range, "c:\path_to\file", ActiveDocument.Styles("Sub level1")
End Sub
Sub InsertHyperlinkWithStyle(this_range As Word.Range, this_file_path As String, this_style As Word.Style)
Dim my_hyperlink As Hyperlink
Set my_hyperlink = ActiveDocument.Hyperlinks.Add( _
Anchor:=this_range.Duplicate, _
Address:=this_file_path, _
TextToDisplay:="text1")
my_hyperlink.Range.Style = this_style
End Sub