Guten Morgen Gerhard,

ich danke Dir !

Habe das Makro gerade mal ausprobiert. Tolles Makro, weil es nicht nur ein spezielles Zeichen einfügen, sondern eben auch ein oder mehrere markierte Zeichen ( einer Selektion ) durch das spezielle Zeichen ersetzten kann. Das hatte ich die ganze Zeit bei meinem ( von PITONYAK abgeschriebenen ) Minimal-Makro leidlich vermisst, aber zu mehr hatten meine Makro-Kenntnisse für dieses spezielle Problem leider nicht gereicht :-((

Grüße
Hans-Werner ;-))

------ Originalnachricht ------
Von "Gerhard Weydt" <[email protected]>
An [email protected]
Datum 28.11.2023 23:31:40
Betreff Re: [de-users] LO 7.6.3.2 und ALT 16

Hallo Hans-Werner, *,

ich habe dafür auch ein Makro gemacht, aber das funktioniert auch in Texten in 
Tabellen oder in Shapes. Da der Code dafür natürlich länger ist, habe ich ein 
allgemeines Makro und pro Zeichen ein ganz kurzes, das dieses aufruft:

sub insertSpecial (chara as integer)

dim vc as object, curSel as object, tc as object, cursel1 as object, null as 
object
dim cellText as object

curSel = ThisComponent.CurrentSelection
if curSel.count > 1 then
    msgbox "Bitte nur eine einfach Selektion",,"Einfügen Sonderzeichen"
    exit sub
end if
if curSel.supportsService("com.sun.star.drawing.Shapes") then
    curSel1 = curSel.getByindex(0)
    if curSel1.supportsService("com.sun.star.drawing.TextShape") or _
        curSel1.supportsService("com.sun.star.drawing.Text") then
        tc = curSel1.createTextCursor
        tc.goToEnd(False)
        cursel1.insertString(tc,CHR(chara), FALSE)
        ThisComponent.CurrentController.select(null)
        ThisComponent.CurrentController.select(cursel1)
        tc.goToEnd(False)
    end if
  elseif curSel.supportsService("com.sun.star.text.TextRanges") then
    if isEmpty(curSel(0).TextTable) then    'keine Tabelle
        vc = ThisComponent.CurrentController.getViewCursor
        vc.setString(CHR(chara))
        Vc.collapseToEnd
      else
        vc = ThisComponent.CurrentController.getViewCursor
        cellText = curSel(0).cell.text
        cellText.insertString(vc, CHR(chara), FALSE)
    end if
  else
    msgbox "Diese Situation (dieser Objekttyp) ist bisher nicht 
programmiert.",,"Einfügen Sonderzeichen"
end if

end sub

sub insertSpecialPointerRight    'mit Alt+Umschalt+R verknüpft
    insertSpecial (9658)
end sub

Ob das schon optimal ist, weiß ich nicht, mir reicht's. Ich gehe von der 
Selektion aus, vielleicht ist es mit dem View-Cursor noch etwas knapper zu 
formulieren.

Gruß
Gerhard

Am 28.11.2023 um 17:38 schrieb OoOHWHOoO:
Sub F2_Guillemet_RECHTS
Dim oVC As Object
oVC = ThisComponent.CurrentController.getViewCursor()
oVC.getText.insertString(oVC.getStart(),Chr(187),False)
End Sub


-- Liste abmelden mit E-Mail an: [email protected]
Probleme? 
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
--
Liste abmelden mit E-Mail an: [email protected]
Probleme? 
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

Antwort per Email an