hier eine Beispielcode, den Du in Deine Bibliothek legen kannst.
Bei Ausführungen der Routine "DocTypErmitteln" wird zunächst der aktuelle Dokumenttyp ermittelt,
dann wird die dazugehörende Sub aufgerufen. Also entweder die Routine für Writer oder Calc.
Dort wird dann an der aktuellen Cursorposition das im Code eingetragenen Unicodezeichen eingetragen.
Code: Alles auswählen
REM ***** BASIC *****
Option Explicit
Dim Dokutyp as String
Sub DocTypErmitteln
REM ist aktives Dokument = Writer oder Calc, dann
REM Sub Routinen aufrufen, sonst Fehlermeldung und Programm beenden.
Dim oDoc
oDoc=ThisComponent
' Dokumententyp ermitteln
IF oDoc.SupportsService("com.sun.star.text.TextDocument") THEN
Dokutyp = "Writer"
END IF
IF oDoc.SupportsService("com.sun.star.sheet.SpreadsheetDocument") THEN
Dokutyp = "Calc"
END IF
IF oDoc.SupportsService("com.sun.star.presentation.PresentationDocument") THEN
Dokutyp = "Präsentation"
End If
IF oDoc.SupportsService("com.sun.star.drawing.DrawingDocument") THEN
Dokutyp = "Zeichnung"
END IF
IF oDoc.SupportsService("com.sun.star.formula.FormulaProperties") THEN
Dokutyp = "Formeldokument"
END IF
Select Case Dokutyp
Case "Writer"
Call UniWriterHakenschwarz
Case "Calc"
Call UniCalc
Case else
Msgbox "Das aktive Dokument ist kein Writer- oder Calc-Dokument!" & chr(10) & chr(10) &_
"Das Textfeld kann nicht eingefügt werden!",48, "Anwender Fehler"
Exit Sub
End Select
msgbox "Das aktuelle Dokument ist ein " & Dokutyp & " Dokument."
End Sub
Sub UniWriterHakenschwarz
Dim oDoc as Object
Dim oCursor as Object
Dim oText as Object
Dim oVC as Object
Dim nCharDez as Long
Dim sChar as String
nCharDez=10003
sChar=chr(nCharDez)
'print sChar
oDoc=thiscomponent
oText=odoc.text
oVC = oDoc.CurrentController.ViewCursor
oText.insertString(oVC.Start, sChar, False)
End Sub
REM ═════════════ Unicode-Zeichen in aktuelle Selection eines CALC-Doukuments einfügen
REM Diese Makro fügt Unicode-Zeichen in die aktuell markierte Zelle ein
REM Dazu muss eine dezimal Zahl hinter der Variablen nCharDez= eingegeben werden
Sub UniCalc
Dim oDoc as Object
Dim oCC as Object
Dim oSheet as Object
Dim oSel as Object
Dim nCharDez as Long
'Dim sFont as String
' dezimale Zeichencodes
' ✀ = 9984
' ✂ = 9986
' ✓ Häkchen = 10003
' ✔ Haken schwarz = 10004
' ✅ Haken weiß auf schwarzem Quadrat = 9989 (sehr interessant in LO wird ein schwarzes Quadrat gezeichnet, hier im Forum ein grünes :-)
' ✕ = 10005
' ✖ = 10006
nCharDez=10005
oDoc=ThisComponent
oCC=oDoc.getCurrentController()
' das aktive Sheet ermittlen
oSheet=oCC.getActiveSheet
' ausgewählte Zelle ermitteln
oSel=oDoc.CurrentSelection
' ' eingestellte Schriftart ermittlen
' sFont=oSheet.CharFontName
oSel.String=chr(nCharDez)
End Sub
Sobald sie fertig ist, lade ich die Datei hoch.
Gruß
David