Writer: Auswahl meherer Absätze per Makro

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Writer: Auswahl meherer Absätze per Makro

Beitrag von F3K Total »

Hallo zusammen,
seit Stunden zermartere ich mir das Hirn, komme aber nicht auf eine Lösung.
Per Maus geht es ganz leicht, STRG und ziehen.
Ich möchte genauso mehrere Textbereiche auf einmal per Makro selektieren.
Mit folgendem Marko habe ich herausgefunden, das es möglich ist.

Code: Alles auswählen

Sub Test
    osel = Thiscomponent.currentselection
    ocontroller = Thiscomponent.currentcontroller
    oViewcursor = ocontroller.ViewCursor
    oViewcursor.collapsetostart
    wait 1000
    ocontroller.select(osel)
end sub
Wenn ich nun mehrere Textabschnitte in einem Writer-Text per STRG und Maus selektiere, dann das Makro laufen lasse, wird erst per Cursor deselektiert, und anschliessend exakt der ursprünglich markierte Bereich wieder selektiert.

Wie erzeuge ich oSel ohne die aktuelle Selektion abzufragen?
Als Beispiel könnte jeder zweite Absatz selektiert werden.

Beste Grüße von Rik
Karolus
********
Beiträge: 7533
Registriert: Mo, 02.01.2006 19:48

Re: Writer: Auswahl meherer Absätze per Makro

Beitrag von Karolus »

Hallo Rik

Du willst eine (Mehrfach)selektion per Makro - und dann ??


Erledige 'dann' innerhalb einer [for|while]-Schleife

Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Writer: Auswahl meherer Absätze per Makro

Beitrag von F3K Total »

Hallo Karolus,
das wäre kein Problem, aber es geht gerade darum, die Selektion manuell und immer unterschiedlich bearbeiten zu können.
Gruß Rik
Karolus
********
Beiträge: 7533
Registriert: Mo, 02.01.2006 19:48

Re: Writer: Auswahl meherer Absätze per Makro

Beitrag von Karolus »

Hallo

Ich kann dir nicht so richtig folgen - Mehrfachselektion per Makro aber manuelle unterschiedliche Bearbeitung ?
Worauf bezieht sich `unterschiedlich` ?

Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Writer: Auswahl meherer Absätze per Makro

Beitrag von F3K Total »

Hi, ein Beispiel:
Jemand, der sich mit Makros nicht auskennt, möchte alle Absätze, in denen z.B. ein bestimmtes Wort vorkommt selektieren.
Über eine Schleife können diese Absätze gefunden werden, nun sollen sie selektiert werden, damit alle auf einmal z.B. rot eingefärbt, Fett , kursiv, eine andere Schriftart ... schlicht, individuell formatiert werden können.
Es handelt sich hier um eine theorethische Aufgabe, mir geht es darum, herauszufinden, wie es möglich ist, so eine Mehrfachselektion per Makro zu erzeugen, in Calc ist es kein Problem, aber in Writer bekomme ich es nicht hin.
Habe schon mit TextRanges experimentiert, kann aber einem solchen Service keinen TextRange hinzufügen.
Rik
PS.: Ich suche keine Suchen und Ersetzen - Lösung.
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Writer: Auswahl meherer Absätze per Makro

Beitrag von F3K Total »

Hi,
versuche mal dies:

Code: Alles auswählen

sub insertHyperlinks
    sSearchString = inputbox("Suchwort: ", "Hyperlinks einfügen")
    sHyperlink = inputbox("Hyperlink: ", "Hyperlinks einfügen")
    oDoc = thisComponent
    oSearchDesc = oDoc.createSearchDescriptor()
    oSearchDesc.SearchString = sSearchString
    oSearchResult = oDoc.findFirst(oSearchDesc)
    i = 0
    While not IsNull(oSearchResult)
        i = i + 1
        oBookMark = oDoc.createinstance("com.sun.star.text.Bookmark")
        oBookMark.Name = sSearchString
        oDoc.text.insertTextContent(oSearchResult, oBookMark, true)
        oSearchResult.HyperLinkURL = sHyperlink
        oSearchResult = oDoc.findNext(oSearchResult.End, oSearchDesc)
    wend
    msgbox ("Es wurden "+i+" Hyperlinks eingefügt",64,"Einfügen der Hyperlinks erfolgreich")
End sub
Gruß R
Antworten