Hallo Jost,
Könntest Du Dein Makro so interpretieren, damit sich andere auch
weiterbilden können?
Ein interessantes Anliegen 
Was dagegen, wenn ich es mal versuche? Reizt mich irgendwie ...
Wolfgang kann ja dann kommentieren/korrigieren.
Es sollte nicht allzu schwer sein, das als Makro nachzubilden. Hier
meine Lösung:
z.B. so: Progr.-Sprache: . . .
ist vermutlich OOoBasic, also die "Standard-Programmiersprache" von OpenOffice.org und jetzt eben LibreOffice. Einen neuen Namen (wie z.B. LibreBasic) hat die Sprache meines Wissens noch nicht erhalten.
------------------------START------------------------
Sub UNICODE
Dim myAuswahl as Object
Übersetzung je Progr.-Zeile: Lies: deutscher Text: . . . .
'Dimensioniere Auswahl als Objekt'
Mein Vorschlag:
Deklariere die Variable "myAuswahl" vom Typ "Objekt"
(Keine Ahnung, ob das Wort "Dimensionieren" gibt)
myAuswahl = ThisComponent.getCurrentSelection()
Weise der Variablen die aktuelle Selektion zu (also was mit der Maus oder per Tastatur gerade markiert wurde)
If IsNull( myAuswahl ) Then
Falls nix markiert ist,
MsgBox "Fehler: Objekt ""Auswahl"" = NULL"
gib in einer Message-Box (also einem Hinweis-Fensterchen) die Meldung "Fehler: Objekt ""Auswahl"" = NULL" aus
Else
ansonsten (also WENN irgendwas markiert ist)
Dim myInhalt as Object
deklariere die Variable myInhalt ebenfalls als Objekt
myInhalt = myAuswahl.getByIndex(0)
und weise ihr den ersten Teil (Abschnitt? Portion?) der Auswahl zu
(vermutlich kann eine Auswahl aus mehreren Teile bestehen, möglicherweise, wenn nicht-zusammenhängende Objekte mittels Strg+Markierung zusammen markiert wurden)
(oder ist damit der Wert von myAuswahl ab Position 0, also vom ersten Zeichen an, gemeint???)
If IsNull( myInhalt ) Then
Falls myInhalt ein leeres Objekt ist,
MsgBox "Fehler: Objekt ""Inhalt"" = NULL"
gib die Meldung "Fehler: Objekt ""Inhalt"" = NULL" aus
Else
ansonsten (also wenn die Variable etwas enthält)
Dim myCode as String
deklariere die Variable myCode als Zeichenkette
myCode = myInhalt.getstring()
und weise ihr den Inhalt der Variable myInhalt zu.
If Len( myCode ) <> 4 Then
Sollte die Zeichenkette ungleich 4 Zeichen sein,
MsgBox "Fehler: Selektion ist nicht genau 4 Stellen lang"
gib die obige Fehlermeldung raus.
Else
Ansonsten (also wenn die Zeichenkette genau 4 Zeichen lang ist)
Dim myValue as Long
deklariere myValue als Long (vermutlich eine Integer-Variante)
myValue = clng( "&H"&myCode )
und weise ihr die (nach Long konvertierte, also dezimale) Zahl zu, die sich aus (der Hexadezimalzahl) "&H" und myCode ergibt
If myValue = 0 Then
Wenn der Wert der Zahl 0 ist,
MsgBox "Fehler: Selektion ist kein Hexadezimalwert"
dann wars kein Hex-Wert,
Else
Ansonsten (ein von 0 abweichender Wert liegt vor)
myCode = Chr( myValue )
weise der Variable myCode das ASCII-Zeichen zum Wert myValue zu
myInhalt.setstring ( myCode )
und überschreibe damit den Inhalt der Variable myInhalt
(die ja bekanntlich die zuvor markierte Stelle/Zeichenfolge enthalten hat)
End If
End If
End If
End If
End Sub
Ende aller Verzweigungen und der Routine.
------------------------ENDE-------------------------
Passt das so?
Schöne Grüße,
Nino