PowerTools SPREAD for Windows Forms 10.0J > 開発者ガイド > スタイル > セルの条件付き書式 > ルールによる条件付き書式 > データバールール |
データバールールでは、各セルの背景として表示されるバーを使用します。 バーの長さは、ワークシート内の他のデータとの相対的なデータサイズを表します。 データバーが長いほど、セル内の値が大きいことを意味します。
次の図は、セル範囲に設定されたデータバーを示します。
条件付き書式で比較する基準となる値の型、および値を指定できます。ConditionalFormattingValueクラスのTypeプロパティで値の型を、Valueプロパティで値を指定します。値の型は、ConditionalFormattingValueType列挙体の値で指定します。
ConditionalFormattingValueTypeの値 | 説明 |
---|---|
AutoMax | 条件付き書式ルールを適用するセル範囲内の最大値とゼロのどちらか大きいほうの値です。 |
AutoMax | 条件付き書式ルールを適用するセル範囲内の最小値とゼロのどちらか小さいほうの値です。 |
Formula | 数式の結果により、ルールが適用されるセル範囲の最小値または最大値が決定されます。 演算結果が数値でない場合は、ゼロとして扱われます。 |
Max | 条件付き書式ルールを適用するセル範囲内の最大値です。 |
Min | 条件付き書式ルールを適用するセル範囲内の最小値です。 |
Number | 条件付き書式ルールを適用するセル範囲内の数値、日付、または時刻の値です。 |
Percent | 条件付き書式ルールを適用するセル範囲内の最小値に、このセル範囲内の最大値と最小値との差のXパーセントを加算した値です。 たとえば、セル範囲内の最小値が1、最大値が10であり、Xが10である場合は、値は1.9となります。 |
Percentile | 範囲に適用された百分位関数の結果です。 |
|
データバールールの最大値は、DatabarConditionalFormattingRuleクラスのMaximumプロパティに、最小値はMinimumプロパティに、それぞれConditionalFormattingValueクラスのインスタンスを作成して設定します。最大値と最小値で、Typeの値が違っていてもかまいません。ただし、最大値のTypeをMin、またはAutoMinに設定することはできません。同様に最小値のTypeをMax、またはAutoMaxに設定することはできません。いずれの場合も例外が発生します。
DatabarConditionalFormattingRuleクラスの各プロパティを設定し、データバーの罫線、色、軸を指定することもできます。
DatabarConditionalFormattingRuleクラスを使用します。
次のサンプルコードは、データバールールを作成し、SheetViewクラスのSetConditionalFormattingメソッドを使用して、このルールを適用します。
C# |
コードのコピー
|
---|---|
private void Form1_Load(object sender, EventArgs e) { fpSpread1.Sheets[0].Cells[0, 0].Value = 3; fpSpread1.Sheets[0].Cells[1, 0].Value = 2; fpSpread1.Sheets[0].Cells[2, 0].Value = 10; fpSpread1.Sheets[0].Cells[3, 0].Value = 1; } private void button1_Click(object sender, EventArgs e) { FarPoint.Win.Spread.DatabarConditionalFormattingRule d = new FarPoint.Win.Spread.DatabarConditionalFormattingRule(); d.BorderColor = Color.Red; d.ShowBorder = true; d.Minimum = new FarPoint.Win.Spread.ConditionalFormattingValue(0, FarPoint.Win.Spread.ConditionalFormattingValueType.Number); d.Maximum = new FarPoint.Win.Spread.ConditionalFormattingValue(15, FarPoint.Win.Spread.ConditionalFormattingValueType.Max); fpSpread1.ActiveSheet.SetConditionalFormatting(0, 0, 4, 1, d); } |
Visual Basic |
コードのコピー
|
---|---|
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load FpSpread1.Sheets(0).Cells(0, 0).Value = 3 FpSpread1.Sheets(0).Cells(1, 0).Value = 2 FpSpread1.Sheets(0).Cells(2, 0).Value = 10 FpSpread1.Sheets(0).Cells(3, 0).Value = 1 End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim d As New FarPoint.Win.Spread.DatabarConditionalFormattingRule() d.BorderColor = Color.Red d.ShowBorder = True d.Minimum = New FarPoint.Win.Spread.ConditionalFormattingValue(0, FarPoint.Win.Spread.ConditionalFormattingValueType.Number) d.Maximum = New FarPoint.Win.Spread.ConditionalFormattingValue(15, FarPoint.Win.Spread.ConditionalFormattingValueType.Max) FpSpread1.ActiveSheet.SetConditionalFormatting(0, 0, 4, 1, d) End Sub |