Yes, that's a god alternative (better in some ways, as my code didn't address the presence of other field switches), but one still needed use the MS Forms 2.0 Object Library:
Code:
Sub CopyHyperlink()
Dim StrTxt As String
With Selection.Hyperlinks(1)
StrTxt = .Address
If .SubAddress <> "" Then StrTxt = StrTxt & "#" & .SubAddress
With .Range.Fields(1).Code
.Text = StrTxt
.Copy
End With
ActiveDocument.Undo
End With
End Sub