| Startseite | Inhalt
StarBasic / OpenOffice.org Basic FAQ
Fragen und Infos: starbasic@dannenhoefer.de

Zurück Vor |
| 7.1.20 Wie kann man eine bedingte Formatierung einfügen?
Man kann auch mit StarBasic eine oder mehrere bedingte Formatierungen für Zellen einfügen. Dies erfolgt mit der Propertie ConditionalFormat einer einer Zelle. Dazu muß man eine Objekt des ConditionalFormat holen und diesem neue Eigenschaften für die Formatierung zuweisen. Die Eigenschaften werden in einem Array mit Propertyvalues erzeugt. Dabei geht es um drei mögliche Parameter: Operator, Formel und Stylename. Der Operator legt fest wie mit dem Zielwert verglichen wird. Unterschieden werden dabei:
EQUAL | Gleich | Der Wert entspricht dem folgenden Wert
NOT_EQUAL | Nicht gleich | Der Wert entspricht nicht dem folgenden Wert
GREATER | Größer | Der Wert ist größer wie der folgende Wert
GREATER_EQUAL | Größer gleich | Der ist größer oder gleich dem folgenden Wert
LESS | Kleiner | Der Wert ist kleiner wie der folgende Wert
LESS_EQUAL | Kleiner gleich | Der Wert ist kleiner oder gleich dem folgenden Wert
BETWEEN | Zwischen | Der Wert ist zwischen den beiden folgenden Werten
NOT_BETWEEN | Nicht zwischen | Der Wert ist nicht zwischen den beiden folgenden Werten
FORMULA | Formel | Der Wert komm aus einer Formel
Der Parameter wird mit oCondition(0).Name = "Operator" oCondition(0).Value = com.sun.star.sheet.ConditionOperator.FORMULA festgelegt. Hier mit Formula. Der nächste Parameter ist Formel. Dieser Parameter enthält einen Wert, ein Verweis auf eine Zelle oder eine Formel. Wenn der Operator "zwischen" oder "nicht zwischen" ist gibt es zwei Formeln für die Werte. oCondition(0).Name="Formula1" oCondition(0).Value=100 oder oCondition(0).Value="Formula2" Der letzte Parameter ist Stylename. In diesem wird das Zellformat in Form der Zellvorlage eingetragen. oCondition(2).Name = "StyleName" oCondition(2).Value = "Überschrift1" Interessanterweise kann man innerhalb eines Makros mehr wie drei Bedingungen festlegen. Über den Dialog in Calc gehen nur drei Bedingungen. So und jetzt das ganze in einen Beispiel: Sub EinfuegenConditionalFormCell Dim oCell as Object Dim oConditionalForm as Object oCell = ThisComponent.Sheets(0).getCellByPosition( 0, 0 ) oConditionalForm = oCell.ConditionalFormat Dim oCondition(3) as New com.sun.star.beans.PropertyValue oCondition(0).Name = "Operator" oCondition(0).Value = com.sun.star.sheet.ConditionOperator.FORMULA oCondition(1).Name = "Formula1" oCondition(1).Value = "SUM(A1:A10) > 100" oCondition(2).Name = "StyleName" oCondition(2).Value = "Überschrift1" oConditionalForm.addNew( oCondition() ) oCondition(0).Value = com.sun.star.sheet.ConditionOperator.BETWEEN oCondition(1).Name = "Formula1" oCondition(1).Value = "100" oCondition(1).Name = "Formula2" oCondition(1).Value = "200" oCondition(2).Name = "StyleName" oCondition(2).Value = "Test" oConditionalForm.addNew( oCondition() ) oCell.ConditionalFormat = oConditionalForm End Sub |
Seitenanfang |

2003 - 2009 von Michael Dannenhöfer |
Letzte Aktualisierung: 06.04.2009