Re: [de-users] Makro : Textstellen finden und formatieren
Hi Klaus, *, 2014-05-04 8:22 GMT+02:00 klaus garen weselpe...@gmx.de: Ich möchte ein Makro schreiben, dass in einem Writer-Dokument, die mit '#' markierten Textstellen erkennt, den Text fett macht und die Schriftgröße um 2 erhöht. Nur der Vollständigkeithalber, und weniger als Antwort für dich: Für so eine Aufgabenstellung ist auch Suchen und Ersetzen mit der aktivierten Option Regulärer Ausdruck geeignet. → Finde Alle (→ alle entsprechenden Textstellen werden selektiert) und dann entweder hart formatieren, oder besser eine Zeichenvorlage zuweisen. Mein Problem ist : Wie finde ich Textstellen in einem Text? Ein Regulärer Ausdruck, der alle Wörter mit einem vorangestelltem # findet wäre z.B. folgender: #\S+ (\S → kein Freiraumzeichen, + → eins oder mehrere) ciao Christian -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de Listenarchiv: http://listarchives.libreoffice.org/de/users/ Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert
Re: [de-users] Makro : Textstellen finden und formatieren
Hallo Klaus, hier eine Lösung für deine Frage: Sub pSuchenUndAendern Dim oDok As Object, oSK As Object, oTK As Object, oSuche As Object, oFund As Object Dim i As Integer Const sSuche = # oDok = ThisComponent oSK = oDok.CurrentController.ViewCursor oTK = oSK.Text.CreateTextCursorByRange(oSK) oSuche = oDok.CreateSearchDescriptor() oSuche.SearchString = sSuche oFund = oDok.FindFirst(oSuche) While Not IsNull(oFund) oTK.GotoRange(oFund, FALSE) oTK.GotoStartOfParagraph(FALSE) oTK.GotoEndOfParagraph(TRUE) i = oTK.Start.CharHeight oTK.CharHeight = i + 2 oTK.CharWeight = com.sun.star.awt.FontWeight.BOLD'/ .NORMAL oFund = oDok.FindNext(oTK.End, oSuche) Wend End Sub Gruß Andreas -- Ursprüngliche Nachricht -- Betreff: [de-users] Makro : Textstellen finden und formatieren Datum: Sonntag, 04.05.2014, 08.22 Uhr Von: klaus garen weselpe...@gmx.de An: users@de.libreoffice.org Hallo, ich habe schon mal Makros für OO geschrieben, bin aber etwas eingerostet ... Nun brauche ich etwas Starthilfe. Ich möchte ein Makro schreiben, dass in einem Writer-Dokument, die mit '#' markierten Textstellen erkennt, den Text fett macht und die Schriftgröße um 2 erhöht. Mein Problem ist : Wie finde ich Textstellen in einem Text? Ich möchte das nicht mit Textmarken lösen! (Das ist für den, der den Text schreibt zu umständlich.) http://www.dannenhoefer.de/faqstarbasic/WiekannichaneineTextmarkespringenundText.html#Zweig250 Vielen Dank für alle Tipps! lg Klaus -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de Listenarchiv: http://listarchives.libreoffice.org/de/users/ Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert
[de-users] Makro : Textstellen finden und formatieren
Hallo, ich habe schon mal Makros für OO geschrieben, bin aber etwas eingerostet ... Nun brauche ich etwas Starthilfe. Ich möchte ein Makro schreiben, dass in einem Writer-Dokument, die mit '#' markierten Textstellen erkennt, den Text fett macht und die Schriftgröße um 2 erhöht. Mein Problem ist : Wie finde ich Textstellen in einem Text? Ich möchte das nicht mit Textmarken lösen! (Das ist für den, der den Text schreibt zu umständlich.) http://www.dannenhoefer.de/faqstarbasic/WiekannichaneineTextmarkespringenundText.html#Zweig250 Vielen Dank für alle Tipps! lg Klaus -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de Listenarchiv: http://listarchives.libreoffice.org/de/users/ Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert
Re: [de-users] Makro : Textstellen finden und formatieren
Hallo, mit Hilfe von : http://www.wollmux.net/wiki/images/f/f9/Makro_Kochbuch.pdf (seite 176) ich finde nun prinzipiell die Textstelle. Code s.u. Ich verstehe aber findnext(xtextrange).End nicht Was soll dieses .End bedeuten? Danke für jeden Tipp! lG Klaus REM * BASIC * Option Explicit public const VON as string = * public const BIS as string = ~ Sub formatiereMyTextstellen dim oDoc as object 'xDocument dim osdStart as object 'xSearchDescriptor dim otrStart as object 'xTextRange dim osdEnd as object 'xSearchDescriptor dim otrEnd as object 'xTextRange oDoc = thisComponent osdStart = oDoc.createSearchDescriptor() osdStart.setSearchString(VON) otrStart = oDoc.findFirst(osdStart) if IsNull(otrStart) then exit sub 'stop wenn kein ergebnis osdEnd = oDoc.createSearchDescriptor() osdEnd.setSearchString(BIS) otrEnd = oDoc.findFirst(osdEnd) if IsNull(otrEnd) then exit sub 'stop, wenn kein otrStart.gotoRange(oDoc.findnext(otrStart.End, osdEnd).End,true) msgbox otrStart.getString() End Sub -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de Listenarchiv: http://listarchives.libreoffice.org/de/users/ Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert