こんにちは、Ryoです。
セル内のデータを視覚的に表現する手段として、データバー表示という方法があり、以前に記事にもしていますが、使用する際に視認性を向上させるためにNegativeBarFormatプロパティを使用することで負の値側の色を変えることもできます。今回はその内容について書いていきます。
1.サンプル概要
先ずデータバーに関して表示や削除などの記事を以前作成しているので、ご参考までに。

今回は例として以下の表を使用します。


このデータに対し、負の値はデータバーを赤、軸の位置をセルの中央に設定して実行すると、このようになります。


なかなか視覚表現としては有効だと思います。
2.サンプルコード
Sub Sample1()
'セルA2~A11にデータバーを追加する
With Range(Cells(2, 1), Cells(11, 1))
.FormatConditions.AddDatabar
'1つ目の条件付き書式
'詳細はhttps://docs.microsoft.com/ja-jp/office/vba/api/excel.formatcondition
With .FormatConditions(1)
'負の値は色を指定する
.NegativeBarFormat.ColorType = xlDataBarColor
'負の値を赤色とする
.NegativeBarFormat.Color.Color = RGB(255, 0, 0)
'軸の位置をセル幅の中央にする
.AxisPosition = xlDataBarAxisMidpoint
End With
End With
'※※RGB値による色指定(参考)※※
'白 : RGB(255,255,255)
'黄 : RGB(255,255,0)
'水 : RGB(0,255,255)
'灰 : RGB(128,128,128)
'緑 : RGB(0,128,0)
'紫 : RGB(128,0,128)
'茶 : RGB(128,0,0)
'青 : RGB(0,0,255)
'紺 : RGB(0,0,128)
'黒 : RGB(0,0,0)
End Sub
負の値をデータバー表示させる際に色の設定を行うにはNegativeBarFormatプロパティを使用して設定します。
構文:オブジェクト.NegativeBarFormat
そのNegativeBarFormatのColorTypeプロパティに「xlDataBarColorを指定」することで、正のデータバーとは異なる色を指定する形になります。
また、本記事の趣旨とは異なりますが、もし正の値と同カラーにしたい場合は「xlDataBarAsPositive」を指定すればOKです。
Withを使用しているのでわかりにくいかもしれませんが、負の値の色を変える指定の全文は、
Range(Cells(2, 1), Cells(11, 1)).FormatConditions(1).NegativeBarFormat.ColorType = xlDataBarColorとなります。
また、色の指定は
Range(Cells(2, 1), Cells(11, 1)).FormatConditions(1).NegativeBarFormat.Color.Color = RGB(255, 0, 0)で「赤」になります。
後はデータバーの軸位置を指定しているAxisPositionプロパティですが、指定する値(構文のExpression)は「xlDatabarAxisAutomatic(自動)」か「xlDataBarAxisMidpoint(中央)」のどちらかになりますので、サンプルでは「中央」を指定して実行しています。
構文:オブジェクト.AxisPosition = expression
この軸指定部分も全文を書くと
Range(Cells(2, 1), Cells(11, 1)).FormatConditions(1).AxisPosition = xlDataBarAxisMidpointとなります。
こうしてみると、操作対象を省略できるWithステートメントは優秀だなぁと思った次第です。
3.まとめ
今回は以前に書いたデータバー記事の補足のようなものですが、データが正負入り混じっていて、それを集計時に簡易的に表現するには便利な機能なので書いてみた次第です。
あまり使いすぎるとかえって見難くなりますから、その点は注意しつつ機会があればご利用を検討されてみるのも良いかと思います。
以上、マイナスのデータバーを設定する方法についてでした!今回の記事が何かの参考になれば幸いです。
Ryo

