Excel VBA データバーを表示する条件付き書式設定する

スポンサーリンク

AddDatabar【アドデータバー】メソッド

指定したセル範囲を元に、そのデータの大きさによって長さの異なるデータバーを表示する条件書式を設定するには、Range【レンジ】オブジェクトに含まれる条件付き書式の集まりを表す
FormatConditions【フォーマットコンディションズ】コレクションのAddDatabar【アドデータバー】メソッドを使用します。

AddDatabar【アドデータバー】メソッドによって条件付き書式のオブジェクトの一つであるデータバーを表す、DataBar【データバー】オブジェクトが返ります。

このDataBar【データバー】オブジェクトに対して設定するデータバーの設定や書式を設定します。

FormatConditions.AddDatabar
【フォーマットコンディションズアドデータバー】メソッドの書式と設定値の説明

オブジェクト.FormatConditions.AddDatabar

  • オブジェクト(必須)
    データバーを表示するセル範囲をRange【レンジ】オブジェクトで指定します。

Delete【デリイト】メソッド

条件付き書式を削除するには、条件付き書式の集まりを表すFormatConditions【フォーマットコンディションズ】コレクションのDelete【デリイト】メソッドを使用します。

1つのセルに条件付き書式を追加すると既に条件付き書式が設定されている場合は既にある条件付き書式に加えて新しい条件付き書式が追加されます。

複数の条件付き書式を設定するのでなければ指定範囲に条件付き書式が設定されているされていないに関わらずDelete【デリイト】メソッドを使用して不要な条件付き書式を削除してから新しい条件付き書式を追加します。

FormatConditions.Delete【フォーマットコンディションズデリイト】メソッドの書式と設定値の説明

オブジェクト.FormatConditions.Delete

  • オブジェクト(必須)
    削除するデータバーのセルまたはセル範囲をRange【レンジ】オブジェクトで指定します。

データバーを追加するコード例

Sub データバー()
Range("A1:A10").FormatConditions.Delete
Range("A1:A10").FormatConditions.AddDatabar
End Sub

実行結果


DataBar【データバー】オブジェクトの主なプロパティ

プロパティ内容
BarColor【バーカラー】データバーの色を設定します。
BarFillType【バーフィルタイプ】データバーの塗りつぶし方法を設定します。
BarBorder【バーボーダー】データバーの枠線を設定します。
Direction【ディレクション】データバーを表示する方向を設定します。
AxisPosition【アクシスポジション】データバーの軸の位置を設定します。
NegativeBarFormat
【ネガティブバーフォーマット】
負の値のデータバーの書式を表す
NegativeBarFormat オブジェクトを取得します。
PercentMin【パーセントミニ】最短データ バーの長さを
セルの幅のパーセンテージで指定します。
PercentMax【パセントマックス】最長データ バーの長さを
セルの幅のパーセンテージで指定します。
ShowValue【ショウバリュー】セル内の値を非表示にします。

BarColor【バーカラー】プロパティ

データ バーの条件付き書式でバーの色を変更するための書式を表すFormatColor【フォーマットカラー】 オブジェクトを取得するには、DataBar【データバー】オブジェクトのBarColor【バーカラー】プロパティを使用します。

BarColor【バーカラー】プロパティの書式と設定値の説明

オブジェクト.BarColor.色を設定するプロパティ = 設定値


データバーの色を赤に設定するコード例

Sub データバー色設定()
Range("A1:A10").FormatConditions.Delete
With Range("A1:A10").FormatConditions.AddDatabar
.BarColor.Color = RGB(255, 0, 0)
End With
End Sub

実行結果


BarFillType【バーフィルタイプ】プロパティ

データ バーを色で塗りつぶす方法を取得または設定するには、DataBar【データバー】オブジェクトのBarFillType【バーフィルタイプ】プロパティを使用します。このプロパティはExcel 2010から使用できます。

BarFillType【バーフィルタイプ】プロパティの書式と設定値の説明

オブジェクト.BarFillType = 設定値

  • オブジェクト(必須)
    塗りつぶす方法を取得または設定するデータバーを表すDataBar【データバー】オブジェクトを指定します。
  • 設定値(必須)
    塗りつぶしの方法をXlDataBarFillType 列挙型の定数で指定します。

    定数内容
    xlDataBarFillSolid0単色で塗りつぶされます。
    xlDataBarFillGradient1グラデーションで塗りつぶされます。(既定値)

データバーを赤色の単色で塗りつぶすコード例

Sub データバー塗りつぶし()
Range("A1:A10").FormatConditions.Delete
With Range("A1:A10").FormatConditions.AddDatabar
.BarColor.Color = RGB(255, 0, 0)
.BarFillType = xlDataBarFillSolid
End With
End Sub

実行結果


BarBorder【バーボーダー】プロパティ

データバーの枠線の設定を表すDataBarBorder【データバーボーダー】 オブジェクトを取得するには、Databar【データバー】オブジェクトのBarBorder【バーボーダー】プロパティを使用します。このプロパティはExcel 2010から使用できます。

BarBorder【バーボーダー】プロパティの書式と設定値の説明

オブジェクト.BarBorder

  • オブジェクト(必須)
    枠線を設定するデーターバーを表すDataBar【データーバー】オブジェクトを指定します。

DataBarBorder【データバーボーダー】 オブジェクトの主なプロパティ

  • DataBarBorder.Color【データボーダーカラー】プロパティ
    データ バーの枠線の色を指定するFormatColor【フォーマットカラー】オブジェクトを取得します。取得した枠線の色の設定を表す、FormatColor【フォーマットカラー】オブジェクトに対して
    Color【カラー】やColorIndex【カラーインデックス】やThemeColor【テーマカラー】プロパティで枠線の色を設定します。
  • DataBarBorder.Type 【データバーボダータイプ】プロパティ
    データ バーの枠線の種類をXlDataBarBorderType 列挙型の定数または値で取得または設定します。

    XlDataBarBorderType 列挙型の定数
    定数内容
    xlDataBarBorderNone0枠線を表示しません。(既定値)
    xlDataBarBorderSolid1実線の枠線を表示します。

データバーに青色の枠線を設定するコード例

Sub データバー枠線()
Range("A1:A10").FormatConditions.Delete
With Range("A1:A10").FormatConditions.AddDatabar
 .BarColor.Color = RGB(255, 0, 0)
 .BarFillType = xlDataBarFillSolid
  With .BarBorder
       .Color.Color = RGB(0, 0, 255)
       .Type = xlDataBarBorderSolid
  End With
End With
End Sub

実行結果


Direction【ディレクション】プロパティ

データーバーの方向を設定するには、Databar【データバー】オブジェクトのDirection【ディレクション】プロパティを使用します。このプロパティはExcel 2010から使用できます。

Direction【ディレクション】プロパティの書式と設定値

オブジェクト.Direction = 設定値

  • オブジェクト(必須)
    方向を設定するデーターバーを表すDatabar【データバー】オブジェクトを指定します。
  • 設定値(必須)
    方向を表す以下の定数を指定します。

    定数内容
    xlLTR左から右(既定値)
    xlRTL右から左

データーバーの方向を右から左に設定するコード例

Sub データバー方向()
Range("A1:A10").FormatConditions.Delete
With Range("A1:A10").FormatConditions.AddDatabar
 .BarColor.Color = RGB(255, 0, 0)
 .Direction = xlRTL
End With
End Sub

実行結果


AxisPosition【アクシスポジション】プロパティ

データーバーの軸の位置を取得または、設定するには、Databar【データバー】オブジェクトの
AxisPosition【アクシスポジション】プロパティを使用します。

AxisPosition【アクシスポジション】プロパティの書式と設定値の説明

オブジェクト.AxisPosition = 設定値

  • オブジェクト(必須)
    軸の位置を設定するデータバーを表すDatebar【データーバー】オブジェクトを指定します。
  • 設定値(必須)
    データーバーの軸の位置をXlDataBarAxisPosition列挙型の定数または値で指定します。

    XlDataBarAxisPosition列挙型の定数
    定数内容
    xlDataBarAxisAutomatic0負の最小値と正の最大値の範囲の比率に応じて
    自動的に軸を設定します。
    正の値は左から右の方向に表示されます。
    負の値は右から左の方向に表示されます。
    すべての値が正またはすべての値が負の場合
    軸は表示されません。
    xlDataBarAxisMidpoint1範囲内の値セットとは関係なくセルの中点に
    軸を表示します。
    正の値は左から右の方向に表示されます。
    負の値は右から左の方向に表示されます。
    xlDataBarAxisNone2軸は表示されず正の値と負の値の両方が
    左から右の方向に表示されます。(既定値)

NegativeBarFormat【ネガティブバーフォーマット】プロパティ

負の値のデータバーの書式を表すNegativeBarFormat【ネガティブバーフォーマット】 オブジェクトを取得するには、Databar【データバー】オブジェクトのNegativeBarFormat【ネガティブバーフォーマット】プロパティを使用します。このプロパティはExcel 2010から使用できます。

NegativeBarFormat【ネガティブバーフォーマット】プロパティの書式と設定値の説明

オブジェクト.NegativeBarFormat

  • オブジェクト(必須)
    負の値があるデーターバーを表すDatabar【データーバー】オブジェクトを指定します。

NegativeBarFormat オブジェクトの主なプロパティ

  • BorderColor【ボーダーカラー】 プロパティ
    負の値のデータ バーに対して枠線の色を設定するFormatColor【フォーマットカラー】オブジェクトを取得します。取得したFormatColor【フォーマットカラー】オブジェクトに対して
    Color【カラー】やColorIndex【カラーインデックス】やThemeColor【テーマカラー】プロパティで
    負の値のデーターバーの枠線の色を設定します。
  • BorderColorType【ボーダーカラータイプ】プロパティ
    正の値のデータ バーと同じ枠線の色を使用するかどうかをXlDataBarNegativeColorType 列挙型の定数で指定します。

    XlDataBarNegativeColorType 列挙型の定数
    定数内容
    xlDataBarColor0正の値とは別の色を使用します。
    xlDataBarSameAsPositive1正のデーター バーと同じ色を使用します。(既定値)
  • Color【カラー】プロパティ
    負の値のデータ バーに対して塗りつぶしの色を設定するFormatColor【フォーマットカラー】オブジェクトを取得します。取得したFormatColor【フォーマットカラー】オブジェクトに対して
    Color【カラー】やColorIndex【カラーインデックス】やThemeColor【テーマカラー】プロパティで負の値のデーターバーの塗りつぶしの色を設定します。
  • ColorType【カラータイプ】プロパティ
    正の値のデータ バーと同じ塗りつぶしの色を使用するかどうかをXlDataBarNegativeColorType 列挙型の定数で指定します。

    XlDataBarNegativeColorType 列挙型の定数
    定数内容
    xlDataBarColor0正の値とは別の色を使用します。
    xlDataBarSameAsPositive1正のデーター バーと同じ色を使用します。(既定値)

データバーの軸の位置を自動設定にして
負の値のデータバーの色を変更するコード例

Sub データバー軸変更()
Range("A1:A10").FormatConditions.Delete
With Range("A1:A10").FormatConditions.AddDatabar
  .BarColor.Color = RGB(0, 0, 255)
  .AxisPosition = xlDataBarAxisAutomatic
  .NegativeBarFormat.ColorType = xlDataBarColor
  .NegativeBarFormat.Color.Color = RGB(255, 0, 0)
End With
End Sub

実行結果


PercentMin【パーセントミニ】プロパティ

最短のデータ バーの長さをセルの幅のパーセンテージで設定または取得するには、
Databar【データーバー】オブジェクトのPercentMin【パーセントミニ】プロパティを使用します。

PercentMin【パーセントミニ】プロパティの書式と設定値の説明

オブジェクト.PercentMin = 設定値

  • オブジェクト(必須)
    最短データバーの長さを設定するデータバーを表すDatabar【データーバー】オブジェクトを指定します。
  • 設定値(必須)
    0 から 100 までの整数を指定します。既定値は 0 です。

PercentMax【パーセントマックス】プロパティ

最長のデータ バーの長さをセルの幅のパーセンテージで設定または取得するには、
Databar【データーバー】オブジェクトのPercentMax【パーセントマックス】プロパティを使用します。

PercentMax【パーセントマックス】プロパティの書式と設定値の説明

オブジェクト.PercentMax = 設定値

  • オブジェクト(必須)
    最長データバーの長さを設定するデータバーを表すDatabar【データーバー】オブジェクトを指定します。
  • 設定値(必須)
    0 から 100 までの整数を指定します。既定値は 0 です。

最短のデータバーをセル幅の10%
最長のデーターバーをセル幅の50%に設定するコード例

Sub データバー最小最大値()
Range("A1:A10").FormatConditions.Delete
With Range("A1:A10").FormatConditions.AddDatabar
  .BarColor.Color = RGB(255, 0, 0)
  .PercentMin = 10
  .PercentMax = 50
End With
End Sub

実行結果


ShowValue【ショウバリュー】プロパティ

セルの値を非表示にしてデータバーだけを表示するには、Databar【データバー】オブジェクトの
ShowValue【ショウバリュー】プロパティを使用します。

ShowValue【ショウバリュー】プロパティの書式と設定値の説明

オブジェクト.ShowValue = 設定値

  • オブジェクト(必須)
    値を非表示にするデータバーを表すDatabar【データーバー】オブジェクトを指定します。
  • 設定値(必須)
    値の表示/非表示をブール型の値で指定します。

    設定値内容
    True値を表示します。(既定値)
    False値を非表示にします。

データーバーの値を非表示にするコード例

Sub データバー値非表示()
Range("A1:A10").FormatConditions.Delete
With Range("A1:A10").FormatConditions.AddDatabar
    .BarColor.Color = RGB(255, 0, 0)
    .ShowValue = False
End With
End Sub

実行結果


以上で、データバーを表示する条件付き書式設定する方法についての解説を終了します。
ありがとうございました。

スポンサーリンク

関連記事・広告