oDoc = thisComponent
oSelection = oDoc.CurrentSelection
If NOT oSelection.supportsService("com.sun.star.text.TextRanges") Then
MsgBox "Bitte einen Text selektieren",48,"Selektion"
Exit Sub
End If
oText = oDoc.Text
oSearchDesc = oDoc.createSearchDescriptor
oSearchDesc.SearchString = "[a-z]+://[^ ]+(\.[^ ]+)+"
oSearchDesc.SearchRegularExpression = True
oResult = oDoc.findFirst(oSearchDesc)
Do While NOT isNull(oResult)
For i = 0 To oSelection.Count -1
oEnd = oSelection(i).End
oStart = oSelection(i).Start
If oText.compareRegionStarts(oEnd,oResult) <= 0 AND oText.compareRegionStarts(oStart,oResult) >= 0 Then
sURL = oResult.String
oResult.HyperLinkURL = sURL
End If
Next i
oResult = oDoc.findNext(oResult,oSearchDesc)
Loop
Bei Selektion über Text und zum Beispiel auch noch Tabellen wird das schon komplizierter.