データバー
条件付き書式の第三弾!データバーについて調べていきます
サンプルソースの詳細な説明は、第一弾の以下の「指定の値より大きい」を参照してください
■種類
まずはExcelのスタイルにある「条件付き書式」を開いてみます
簡単なものであれば、デフォルトで用意されている書式ルールを利用しても充分です
今回は「データバー」について順に書式ルール毎に見ていきましょう
■データバー
これはセルの値をデータとしてバー表示させるためのルールです
一番下にある「その他のルール」を選択した場合は、以下のような新しい書式ルールの画面が表示されます
「セルの強調表示ルール」でも使用した以下のデータを(ちょっと書き換えてw)サンプルにして、条件付き書式を施してみます
条件付き書式の対象範囲は、上図のサンプルデータの背景色が白い点数部分を対象として行います(範囲[Range]は「C4:K8」です)
・塗りつぶし(グラデーション)
指定した値と等しいセルに対して、指定した書式を施します
色を選ぶだけですね!「セルの強調表示ルール」や「上位/下位ルール」のような小さいウィンドウはでませんし、書式ルールを確認してもそれほど変化はないようです
– 書式ルールを確認
– マクロで記録してみる
青のデータバー(グラデーション)の設定をマクロを使って、保存した結果が以下のVBAソースです
Sub Macro20() ' ' Macro20 データバー(グラデーション) ' ' Range("C4:K8").Select Selection.FormatConditions.AddDatabar Selection.FormatConditions(Selection.FormatConditions.count).ShowValue = True Selection.FormatConditions(Selection.FormatConditions.count).SetFirstPriority With Selection.FormatConditions(1) .MinPoint.Modify newtype:=xlConditionValueAutomaticMin .MaxPoint.Modify newtype:=xlConditionValueAutomaticMax End With With Selection.FormatConditions(1).BarColor .Color = 13012579 .TintAndShade = 0 End With Selection.FormatConditions(1).BarFillType = xlDataBarFillGradient Selection.FormatConditions(1).Direction = xlContext Selection.FormatConditions(1).NegativeBarFormat.ColorType = xlDataBarColor Selection.FormatConditions(1).BarBorder.Type = xlDataBarBorderSolid Selection.FormatConditions(1).NegativeBarFormat.BorderColorType = _ xlDataBarColor With Selection.FormatConditions(1).BarBorder.Color .Color = 13012579 .TintAndShade = 0 End With Selection.FormatConditions(1).AxisPosition = xlDataBarAxisAutomatic With Selection.FormatConditions(1).AxisColor .Color = 0 .TintAndShade = 0 End With With Selection.FormatConditions(1).NegativeBarFormat.Color .Color = 255 .TintAndShade = 0 End With With Selection.FormatConditions(1).NegativeBarFormat.BorderColor .Color = 255 .TintAndShade = 0 End With End Sub
– マクロの説明
・簡単に説明
※VBAソースの詳細な説明は、その1の「指定の値より大きい」を参照
8行目:[AddDatabarメソッド]で追加
9行目:[ShowValueプロパティ] = True で「棒のみ表示」のチェックを[OFF]
10行目:優先順位の設定
11-14行目:最小値と最大値の評価方法を自動設定に[Modifyメソッド]で変更
15-18行目:[BarColorプロパティ]でバーの外観の色を設定
19行目:[BarFillTypeプロパティ]でバーの外観の塗りつぶしを「グラデーション」に設定
20行目:[Directionプロパティ](Dirですね)棒の方向を「左から右」に設定
21行目:[NegativeBarFormatのColorTypeプロパティ]で負の棒の塗りつぶしを「塗りつぶしの色」に設定
22行目:[BarBorderのTypeプロパティ]でバーの外観の枠線を「実線」に設定
23-24行目:[NegativeBarFormatのBorderColorTypeプロパティ]で負の棒の罫線の色を「枠線の色」に設定
25-28行目:[BarBorderのColorプロパティ]でバーの外観の枠線の色を設定
29行目:[AxisPositionプロパティ]で軸の設定を「自動」に設定
30-33行目:[AxisColorプロパティ]で軸の色を設定
34-37行目:[NegativeBarFormatのColorプロパティ]で負の棒の塗りつぶしの「色」を設定
38-41行目:[NegativeBarFormat.BorderColorプロパティ]で負の棒の枠線の「色」を設定
・塗りつぶし(単色)
指定した値と等しいセルに対して、指定した書式を施します
こちらも色を選ぶだけですね!グラデーションと単色の違いだけのようです
– 書式ルールを確認
– マクロで記録してみる
青のデータバー(単色)の設定をマクロを使って、保存した結果が以下のVBAソースです
Sub Macro21() ' ' Macro21 データバー(単色) ' ' Range("C4:K8").Select Selection.FormatConditions.AddDatabar Selection.FormatConditions(Selection.FormatConditions.count).ShowValue = True Selection.FormatConditions(Selection.FormatConditions.count).SetFirstPriority With Selection.FormatConditions(1) .MinPoint.Modify newtype:=xlConditionValueAutomaticMin .MaxPoint.Modify newtype:=xlConditionValueAutomaticMax End With With Selection.FormatConditions(1).BarColor .Color = 13012579 .TintAndShade = 0 End With Selection.FormatConditions(1).BarFillType = xlDataBarFillSolid Selection.FormatConditions(1).Direction = xlContext Selection.FormatConditions(1).NegativeBarFormat.ColorType = xlDataBarColor Selection.FormatConditions(1).BarBorder.Type = xlDataBarBorderNone Selection.FormatConditions(1).AxisPosition = xlDataBarAxisAutomatic With Selection.FormatConditions(1).AxisColor .Color = 0 .TintAndShade = 0 End With With Selection.FormatConditions(1).NegativeBarFormat.Color .Color = 255 .TintAndShade = 0 End With End Sub
– マクロの説明
・簡単に説明
※VBAソースの詳細な説明は、その1の「指定の値より大きい」を参照
グラデーションと単色の違いがどこに出ているのかを見ていきます
19行目:[BarFillTypeプロパティ]でバーの外観の塗りつぶしを「単色」に設定
22行目:[BarBorderのTypeプロパティ]でバーの外観の枠線を「なし」に設定
以下は、グラデーションにはあったが単色ではなくなっている設定です
- [NegativeBarFormatのBorderColorTypeプロパティ]で負の棒の罫線の設定
- [BarBorderのColorプロパティ]でバーの外観の枠線の色の設定
- [NegativeBarFormat.BorderColorプロパティ]で負の棒の枠線の色の設定
■最後に
今回はデータバーについて調べましたが、カラースケールも一緒でも良かったかな?とも思いましたが、書式ルールに選択肢が多いので、その辺りを追加で調べてみても良さそうです!
VBAソースでも列挙型が多数出てきているので、その辺りをまとめるのも必要な感じですね!
次回、「カラースケール」を調べてみて、余裕がありそうなら、書式ルールの選択肢についても調べてみたいと思います
ちなみにですが、色の設定については、第一弾の方で最後に説明していますので、そちらも確認してください
ではでは