データバー

条件付き書式の第三弾!データバーについて調べていきます

サンプルソースの詳細な説明は、第一弾の以下の「指定の値より大きい」を参照してください

■種類

まずはExcelのスタイルにある「条件付き書式」を開いてみます

条件付き書式
データバー
条件付き書式
広告

簡単なものであれば、デフォルトで用意されている書式ルールを利用しても充分です

今回は「データバー」について順に書式ルール毎に見ていきましょう

■データバー

これはセルの値をデータとしてバー表示させるためのルールです

データバー 3
データバー

一番下にある「その他のルール」を選択した場合は、以下のような新しい書式ルールの画面が表示されます

データバー 4
その他のルール

「セルの強調表示ルール」でも使用した以下のデータを(ちょっと書き換えてw)サンプルにして、条件付き書式を施してみます

条件付き書式-サンプルデータ
サンプルデータ

条件付き書式の対象範囲は、上図のサンプルデータの背景色が白い点数部分を対象として行います(範囲[Range]は「C4:K8」です)

・塗りつぶし(グラデーション)

指定した値と等しいセルに対して、指定した書式を施します

色を選ぶだけですね!「セルの強調表示ルール」や「上位/下位ルール」のような小さいウィンドウはでませんし、書式ルールを確認してもそれほど変化はないようです

– 書式ルールを確認

データバー 11
データバー 12

– マクロで記録してみる

青のデータバー(グラデーション)の設定をマクロを使って、保存した結果が以下の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プロパティ]で負の棒の枠線の「色」を設定

広告

・塗りつぶし(単色)

指定した値と等しいセルに対して、指定した書式を施します

こちらも色を選ぶだけですね!グラデーションと単色の違いだけのようです

– 書式ルールを確認

データバー 19
データバー 20

– マクロで記録してみる

青のデータバー(単色)の設定をマクロを使って、保存した結果が以下の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ソースでも列挙型が多数出てきているので、その辺りをまとめるのも必要な感じですね!

次回、「カラースケール」を調べてみて、余裕がありそうなら、書式ルールの選択肢についても調べてみたいと思います

ちなみにですが、色の設定については、第一弾の方で最後に説明していますので、そちらも確認してください

ではでは

広告

やもす ʕ•͡-•ʔ

のんびり!のほほん!がモットーです!w 蕎麦食いたい ライブ行きたい 暑いの嫌い

シェアする