OK. I see your point, but the issues you raise are not insurmountable - how about
Code:
Sub GetLinkAddress2()
Dim hLink As Hyperlink
Dim oRng As Range
Set oRng = ActiveDocument.Range
oRng.Collapse 0
Set hLink = Selection.Hyperlinks(1)
oRng.Text = hLink.Address
If Not hLink.SubAddress = "" Then oRng.Text = oRng.Text & "#" & hLink.SubAddress
MsgBox oRng.Text & vbCr & "copied to clipboard"
oRng.Cut
lbl_Exit:
Set hLink = Nothing
Set oRng = Nothing
Exit Sub
End Sub