Makro (Basic-Calc, OOo2.02, Win2k) Zellen formatieren

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

Moderator: Moderatoren

sascha11
***
Beiträge: 82
Registriert: Di, 10.01.2006 11:21

Makro (Basic-Calc, OOo2.02, Win2k) Zellen formatieren

Beitrag von sascha11 »

hey!

ich muss die Zellformatierung variabel lösen, daher benötige ich für mein Makro die Befehle (Eigenschaften) für:
- Fett
- Unterstreichen

Code: Alles auswählen

also z. Bsp.: oT5.getCellRangeByName("A9:C1000").Fett
                   oT5.getCellRangeByName("A9:C1000").Unterstreichen
Anschließend soll dann der Zellbereich wieder vollständig, incl. aller Formatierungen gelöscht werden.
Hier habe ich Code gefunden, der mich allerdings, auch nach einigen Anpassungen mit Fehlermeldungen überhäuft:

Code: Alles auswählen

Die Methode clearContents vereinfacht den Vorgang des Löschens von
Zellinhalten und Zellbereichen, indem sie einen bestimmten Inhaltstyp aus einem
Zellbereich löscht.
Das folgende Beispiel entfernt alle Zeichenfolgen sowie die direkten
Formatierungsinformationen aus dem Bereich B2:C3.
Dim Doc
As Object Dim Sheet
As Object Dim CellRange
As Object Dim Flags
As Long
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets(0)
CellRange = Sheet.getCellRangeByName('B2:C3')
Flags = com.sun.star.sheet.
CellFlags.STRING + _ com.sun.star.shee
CellFlags.HARDATTR
CellRange.clearContents(Flags)
Ich habe Doc sowie sheets definiert, oft fehlen auch Syntaxteile, wie nach
.shee oder die Eigenschaft bei Flags = com.sun.star.sheet.

Danke!

Sascha
ykcim
*****
Beiträge: 324
Registriert: Di, 29.07.2003 15:22
Wohnort: Neu-Isenburg
Kontaktdaten:

Beitrag von ykcim »

Hi,

die Zeichen einer Zelle werden über dir CharProperties eingetstellt.
In Deinem Fall CharWeight und CharUnderline.

Code: Alles auswählen

oDoc = thiscomponent
osheet=odoc.sheets(0)
mycell=osheet.getcellrangebyname("A1:C1")
myCell.CharUnderline=com.sun.star.awt.FontUnderline.SINGLE
myCell.CharWeight=com.sun.star.awt.FontWeight.BOLD
Weitere Parameter stehten im SDK.

Das Löschen geht über ClearContent und den ContentFlag. Der Falg setzt sich aus einer Kombination von Werten zusammen.
In Deinem Fall sollte es VALUE,STRING und HARDATTR(Formatierung) sein. Auch hier findest Du die weiteren Parameter im SDK.

Code: Alles auswählen

myDoc = thisComponent
mySheet = myDoc.sheets(0)

mycell = mysheet.getCellByPosition(0,0)
flag=com.sun.star.sheet.CellFlags.VALUE+com.sun.star.sheet.CellFlags.STRING+com.sun.star.sheet.CellFlags.HARDATTR
mycell.clearcontents(flag)


mfg
Michael
__
FAQ zu Starbasic -> http://www.starbasicfaq.de
sascha11
***
Beiträge: 82
Registriert: Di, 10.01.2006 11:21

Beitrag von sascha11 »

danke- genau das habe ich benötigt!
Antworten