PR

【VBA】マイナスのデータバーを設定する

これで楽に!?VBA活用
記事内に広告が含まれています。

こんにちは、Ryoです。
セル内のデータを視覚的に表現する手段として、データバー表示という方法があり、以前に記事にもしていますが、使用する際に視認性を向上させるためにNegativeBarFormatプロパティを使用することで負の値側の色を変えることもできます。今回はその内容について書いていきます。

スポンサーリンク

1.サンプル概要

先ずデータバーに関して表示や削除などの記事を以前作成しているので、ご参考までに。

【VBA】データバー表示と削除、コピー元範囲指定を解除する
こんにちは、Ryoです。 何ともごちゃ混ぜなタイトルになってしまいましたが、Excelのシート上で集計したデータなどを容易に視認化できるデータバー表示というものがあり、これをVBAで処理することも出来ますので、結果出力の際に内容によっては有...

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

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

なかなか視覚表現としては有効だと思います。

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

タイトルとURLをコピーしました