LibreOffice – Makro zur Eingabe von Unicode-Zeichen

Hinweis: Dieses Makro eignet sich nicht zur Eingabe von Emojis als Unicode. Die entsprechend langen Codes führen in der derzeitigen Implementierung der Chr()-Funktion zu einem Überlauf. (Stand 02.12.2015, LibreOffice 4.4, Windows)


  1. LibreOffice Writer öffnen
  2. Menü → Extras → Makros → Makros verwalten → LibreOffice Basic…
  3. in Feld „Makros aus“ Element „Meine Makros“ auswählen
  4. Button „Neu“ klicken
  5. Im öffnenden Texteditor folgenden Code eingeben

Sub EnterUnicodeChar 
rem - Variablen definieren ----------------------------------------------- 
rem define variables 
dim document as object 
dim dispatcher as object 
dim unicode as string 
dim unicodeVal as long 

rem - Dokumentobjekt holen ---------------------------------------------- 
document = ThisComponent.CurrentController.Frame dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem -  Unicode aus Eingabedialog lesen ---------------------------------- 
rem 
unicode = INPUTBOX("Dezimal oder &H[+Hexadezimal]", "Unicode eingeben") 

rem - Unicode in Dokument einfügen -------------------------------------- 
dim args7(1) as new com.sun.star.beans.PropertyValue 
args7(0).Name = "Symbols" 
unicodeVal = clng(unicode) 
args7(0).Value = chr(unicodeVal) 
args7(1).Name = "FontName" 
args7(1).Value = "Georgia" 
dispatcher.executeDispatch(document, ".uno:InsertSymbol", "", 0, args7()) 
End Sub 
  1. Makro als Symbol zur Toolbar hinzufügen
    1. Rechtsklick auf gewünschter Toolbar öffnen
    2. Eintrag „Symbolleiste anpassen…“ wählen
    3. Button „Hinzufügen…“ neben Feld „Symbolleisteninhalt“ klicken
    4. In Feld „Bereich“ den Eintrag „LibreOffice Makros → Meine Makros → Standard →Module1“ 1 auswählen
    5. In Feld „Befehle“ den Eintrag EnterUnicodeChar 2 auswählen
    6. Button „Hinzufügen“ klicken
    7. Über Kombinationsfeld „Ändern“ ggf. Name und Symbol ändern

  1. Modulname kann ggf. umbenannt werden
  2. Befehlsname kann beliebig geändert werden, Makroquelltext muss entsprechend geändert werden