Seite 1 von 1

GroßKleinSchreibung in Tabellen

Verfasst: Fr 13. Jun 2025, 15:49
von PastorJens
Liebes Forum,

ich nutze für den Wechsel von kleingeschriebenen zu großgeschriebenen Buchstaben (und umgekehrt) folgendes Makro:

Sub GrossKleinSchreibung
dim LenString as integer
myDoc=thisComponent
myViewCursor=myDoc.GetCurrentController.ViewCursor
LenString = Len(myviewCursor.string)

oText = myDoc.getText
oCursor = oText.createTextCursor()
oCursor.gotoRange(myViewCursor,false)
oCursor.gotoStartOfWord(False)
myViewCursor.gotoRange(oCursor,false)
myViewCursor.goRight(1,false)
myViewCursor.goRight(1,true)
buchstabe = myviewCursor.string

if myviewCursor.string = ucase(buchstabe) then
oCursor.gotoStartOfWord(False)
myViewCursor.gotoRange(oCursor,false)
myViewCursor.goRight(1,false)
myViewCursor.goRight(LenString -1,true)
buchstabe = myviewCursor.string
myviewCursor.string=lcase(buchstabe)
myViewCursor.goleft(1,false)
myViewCursor.goright(LenString,true)
exit Sub
end if

oCursor.gotoRange(myViewCursor,false)
oCursor.gotoStartOfWord(False)
myViewCursor.gotoRange(oCursor,false)
myViewCursor.goRight(1,true)
buchstabe = myviewCursor.string

if myviewCursor.string = ucase(buchstabe) then
myviewCursor.string=lcase(buchstabe)
else
myviewCursor.string=ucase(buchstabe)
end if

End Sub

Das funktioniert auch sehr gut in "normalen" Texten. Allerdings nicht in Tabellen. Da erscheint eine Fehlermeldung und die Zeile "oCursor.gotoRange(myViewCursor,false)" wird markiert.
Woran liegt der Fehler - und wie könnte ich den Code so ändern, dass es auch in Tabellen funktioniert?

Viele Grüße, Jens

Re: GroßKleinSchreibung in Tabellen

Verfasst: Sa 14. Jun 2025, 10:23
von mikele
Hallo,
ich habe noch nicht richtig verstanden was du erreichen willst.
Soll der nur erste Buchstabe des aktuellen Wortes in der Schreibweise geändert werden?
Dann würde ich es so versuchen:

Code: Alles auswählen

sub GrossKleinSchreibung2

	myDoc=ThisComponent
	viewCur=myDoc.GetCurrentController.ViewCursor
	txt=mydoc.CurrentSelection.getByIndex(0).Text
	txtcur=txt.createTextCursorByRange(viewCur)
	txtcur.collapseToStart
	txtcur.gotoStartOfWord(false)
	txtcur.goRight(1,true)
	buchstabe=txtcur.String
	if buchstabe=ucase(buchstabe) then
		txtcur.String=lcase(buchstabe)
	else
		txtcur.String=ucase(buchstabe)
	end if
	
end sub

Re: GroßKleinSchreibung in Tabellen

Verfasst: Sa 14. Jun 2025, 19:41
von PastorJens
Vielen Dank! Ja, ich halte oft die Shift-Taste zu kurz, so dass der erste Buchstabe z.B. bei Hauptwörtern klein geschrieben ist. Die "normale" F3-Funktion macht oft noch vieles andere, was ich nicht will, ...
Mit Deinem Code funktioniert es jetzt auch in Tabellen! Super!