Schriftformat "Kleinbuchstaben"

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

hpweecks
*
Beiträge: 14
Registriert: Mo, 26.07.2004 13:23

Schriftformat "Kleinbuchstaben"

Beitrag von hpweecks »

Hallo OOfficeaner :wink:

Gibt es in CALC die Möglichkeit den Textinhalt einer Zelle als 'Kleinbuchstaben' zu formatieren:?:

FORMAT - ZELLE oder FORMAT - ZEICHEN enthalten anscheinend nichts..

Grüße aus Frankfurt am Main....

HP
The man who follows the crowd will usually get no further than the crowd. The man who walks alone is likely to find himself in places no one has ever been.
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

Ja, das geht:

über Format>Groß-/Kleinschreibung -->Kleinbuchstaben. Man kann auch ein Tataturshortcut dafür festlegen oder eine entsprechende Schaltfläche in eines der Menüs legen.

So richtig komfortabel ist das aber nicht, da man immer wenn man den Text ändert die Formatierung neu durchführen muß. Da ich keine Möglichkeit sehe DIESE Formatierung mit Bordmitteln fest an der Zelle zu verankern habe ich mal schnell etwas Code geschrieben, der dieses erledigt:

Code: Alles auswählen

REM   Globale Variablen 
Global oRecentSelection As Object 
Global oListener As Object 
Global oDocView As Object 

' =================================== 

REM  Dieses Makro zur Initialisierung starten
Sub erstelle_Listener 
oDocView = ThisComponent.getCurrentController 
oListener = CreateUnoListener( "Programm_", "com.sun.star.view.XSelectionChangeListener" ) 
'registrieren 
oDocView.addSelectionChangeListener(oListener) 
End Sub 

' ===================================

REM  wieder entfernen
Sub entferne_Listener
On Error Resume Next 
oDocView.removeSelectionChangeListener(oListener) 
End Sub 

' =================================== 

REM  Events überwachen
Sub Programm_SelectionChanged(oEvent) 
'ON ERROR
On Error Goto Fehler
oSelection = oRecentSelection 
oRecentSelection = oEvent.source.selection 
if oSelection.supportsService ("com.sun.star.sheet.SheetCell") then 
  if oSelection.Type = com.sun.star.table.CellContentType.TEXT Then
     'Formatvorlage Namens "klein" muß existieren
     if oSelection.CellStyle = "klein" Then
      inhalt = LCASE(oSelection.String)
      oSelection.String = inhalt 
    end if
  end if 
end if 
Fehler:    
End Sub 
Die Zellen in welchen kleingeschriebener Text stehen soll müssen vom Programm irgendwie erkannt werden, diese Erkennung führe ich derzeitig mit dem Namen der Formatvorlage durch. Vielleicht hat jemand eine bessere Idee?
Damit das Ganze automatisch funktioniert nur den Code in ein Modul des Dokuments kopieren und die Makros erstelle_Listener und entferne_Listener den entsprechenden Ereignissen Dokument öffnen und Dokument schließen (des Dokuments, nicht OOo generell) zuweisen und es läuft automatisch. Die Zellen deren Inhalt automatisch in Kleinbuchstaben umgewandelt wird werden erkannt durch das (einmalige) zuweisen einer Zellformatvorlage Namens "klein". Nur der Name der Vorlage ist wichtig der Inhalt ist egal. Eigentlich müssen nur die Zellen in welchen Text steht der nicht in Kleinbuchstaben umgewandelt werden soll eine andere Formatvorlage besitzen, da das Makro Zellen mit dem Inhalt Zahl,Formel,Datum etc. nicht ändert selbst wenn sie mit der Formatvorlage "klein" formatiert sind.

Ich würde mich freuen wenn ich eine Rückmeldung erhalte, falls jemand den Code verwendet, da ich ihn bisher nur kurz unter Windows getestet habe.


Gruß
Stephan
Antworten