BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Makro für Wechsel der Schriftfarbe für einzelne Buchstaben

WRITER hat alles, was Sie von einer modernen, voll ausgestatteten Textverarbeitung erwarten.
Antworten
Ilmarinen
! Supporter - Spende !
Beiträge: 2
Registriert: Do 11. Mai 2023, 13:37

Makro für Wechsel der Schriftfarbe für einzelne Buchstaben

Beitrag von Ilmarinen » Do 11. Mai 2023, 23:23

Hallo zusammen,
ich möchte in LibreOffice ein Makro erstellen, um in einem Text die Schriftfarbe für Buchstaben zu verändern. Dabei sollen den einzelnen Buchstaben feste Farben zugewiesen werden. Also alle "a" in blau, alle "b" in rot etc.
In Word ist mir das mit VBA über die Funktion "Suchen und Ersetzen" gelungen. Ich habe dann den relativ kurzen Code einfach vervielfälltigt und für jeden Buchstaben angepasst. In Basic ist aber der Code unheimlich lang und die Stelle mit dem Farbwechsel kann ich nicht erkennen.
Gibt es da eine schönere Lösung. Ich habe leider gar keine Erfahrung im Programmieren und schon gar nicht in Basic.

Ich hoffe, mir kann da jemand einen Tipp geben.

Herzliche Grüße
Ilmarinen

musikai
Beiträge: 262
Registriert: Do 14. Mai 2015, 17:53

Re: Makro für Wechsel der Schriftfarbe für einzelne Buchstaben

Beitrag von musikai » Fr 12. Mai 2023, 01:13

Hier ist ein funktionierender Basic Code:
https://ask.libreoffice.org/t/how-to-ch ... ro/11036/3

Sollte leicht für alle Buchstaben erweiterbar sein. Vielleicht könnte man anstelle der Farben auch Zeichenstile erstellen und zuweisen, aber im Moment reicht das vielleicht so.

Code: Alles auswählen

Sub runTest
	setColorToSpecificText("a", RGB(255,0,0)) ' Change all "a" to RED
	setColorToSpecificText("b", RGB(0,0,255)) ' Change all "b" to Blue
End Sub

Sub setColorToSpecificText(sSpecificText As String, lColor As Long)
Dim oSrchDescr As Variant
Dim aFound As Variant
Dim oNextText As Variant
Dim i As Long
	oSrchDescr = ThisComponent.createSearchDescriptor()
	oSrchDescr.setSearchString(sSpecificText)
	aFound = ThisComponent.findAll(oSrchDescr)
	For i = 0 To aFound.getCount() - 1
		oNextText = aFound.getByIndex(i)
		oNextText.CharColor = lColor
	Next i
End Sub
Win7 Pro, Sibelius 7.1.3, Lubuntu 15.10, LibO 4.4.7, OO 4.1.3
Free Project: LibreOffice Songbook Architect (LOSA)
http://struckkai.blogspot.de/2015/04/li ... itect.html

Ilmarinen
! Supporter - Spende !
Beiträge: 2
Registriert: Do 11. Mai 2023, 13:37

Re: Makro für Wechsel der Schriftfarbe für einzelne Buchstaben

Beitrag von Ilmarinen » Fr 12. Mai 2023, 17:30

Hallo muiskai,
wow, das ging ja super schnell.
Ich habe das Makro auf die anderen Buchstaben erweitert und es funktioniert super.

Herzlichen Dank für Deine Hilfe
Ilmarinen

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten