Seite 1 von 1

Bedingte Formatierung per Makro setzen

Verfasst: Di, 29.01.2008 11:42
von komma4
Das folgende Codebeispiel setzt in einer Calc-Datei die Eigenschaften Format>Bedingte Formatierung... auf den angegebenen Bereich:

Code: Alles auswählen

Sub calc_setBedingtesFormat
' 2008-01-29 

oBlatt = ThisComponent.Sheets.getByName( "Tabelle1" )
oBereich = oBlatt.getCellRangeByName( "B2:B9" ) 

' Objekt der gesetzten Bedingungen für diesen Bereich
oBedingungen = oBereich.getPropertyValue( "ConditionalFormat" )

' neue Variable
Dim oBedingung(3) as New com.sun.star.beans.PropertyValue

oBedingung(0).Name = "Operator"
oBedingung(0).Value = com.sun.star.sheet.ConditionOperator.LESS

oBedingung(1).Name = "Formula1"
oBedingung(1).Value = "9"

oBedingung(2).Name = "StyleName"
oBedingung(2).Value = "hellgrün"


' hinzu
oBedingungen.addNew( oBedingung )


oBedingung(0).Name = "Operator"
oBedingung(0).Value = com.sun.star.sheet.ConditionOperator.GREATER

oBedingung(1).Name = "Formula1"
oBedingung(1).Value = "19"

oBedingung(2).Name = "StyleName"
oBedingung(2).Value = "hellrot"

' hinzu
oBedingungen.addNew( oBedingung ) 
' anwenden
oBereich.setPropertyValue( "ConditionalFormat", oBedingungen )

End Sub

Code: Alles auswählen

' die Konstanten der Vergleichsoperatoren:
' http://api.openoffice.org/docs/common/ref/com/sun/star/sheet/ConditionOperator.html
com.sun.star.sheet.ConditionOperator.NONE
com.sun.star.sheet.ConditionOperator.EQUAL
com.sun.star.sheet.ConditionOperator.NOT_EQUAL
com.sun.star.sheet.ConditionOperator.GREATER
com.sun.star.sheet.ConditionOperator.GREATER_EQUAL
com.sun.star.sheet.ConditionOperator.LESS
com.sun.star.sheet.ConditionOperator.LESS_EQUAL
com.sun.star.sheet.ConditionOperator.BETWEEN
com.sun.star.sheet.ConditionOperator.NOT_BETWEEN
com.sun.star.sheet.ConditionOperator.FORMULA

Anmerkung:
die Bedingungen werden zu evtl. vorhandenen Einstellungen hinzugefügt - bis zu 3 Bedingungen per Bereich sind möglich, beim Setzen von weiteren Bedingungen wird keine Fehlermeldung ausgegeben;
ist ein angegebenes Zellformat nicht vorhanden, so wird (ohne Fehlermeldung!) "Standard" gesetzt

HTH