Das Problem ist, wie soll das Programm unterscheiden können zwischen
einem "https://de.wikipedia.org/wiki/Almas_(Raumstation)" und einem
"(siehe https://de.wikipedia.org/wiki/Almas_Raumstation)"? Der
Unterschied sieht für dich als Menschen recht einfach aus, aber für nen
Computer ist so etwas zu erkennen eine recht verzwickte Angelegenheit.
Mir fällt da keine vernünftige Lösung ein. Alles, was ich dir anbieten
kann, ist ein Makro, schnell zusammengeschustert, aus verschiedenne
Quellen, also nicht schön, aber es funktioniert. Dann musst du nur den
kompletten Link markieren, und das Makro aufrufen. Das setzt dann diesen
merkierten Text als sowohl Text wie auch URL für den Hyperlink ein
(egal, was vorher drin stand). Wenn du das Makro ins Mausmenü oder auf
eine Tastenkombination legst, sollte das einigermaßen handhabbar sein
(von komfortabel mag ich trotzdem nicht sprechen).
sub KorrigiereHyperLnk
Dim vSelections
Dim vSel
Dim vCursor
Dim i1 As Integer
vSelections = ThisComponent.getCurrentSelection()
If IsNull(vSelections) OR IsEmpty(vSelections) OR
vSelections.getCount() < 1 Then
MsgBox "Es ist nichts selektiert"
Elseif vSelections.getCount() > 1 Then
MsgBox "Es sind zu viele Passagen selektiert"
Else
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
For i1 = 0 To vSelections.getCount() - 1
vSel = vSelections.getByIndex(i1)
vCursor=ThisComponent.Text.createTextCursorByRange(vSel)
dim args2(4) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Hyperlink.Text"
args2(0).Value = vCursor.getString()
args2(1).Name = "Hyperlink.URL"
args2(1).Value = args2(0).Value
args2(2).Name = "Hyperlink.Target"
args2(2).Value = ""
args2(3).Name = "Hyperlink.Name"
args2(3).Value = ""
args2(4).Name = "Hyperlink.Type"
args2(4).Value = 1
dispatcher.executeDispatch(document, ".uno:SetHyperlink", "", 0, args2())
Next
End If
end sub
Wolfgang