Excel VBAでテーマカラーと最小値/最大値を指定してデータバーの条件付き書式を追加

ソフトウェア
「条件付き書式ルールの管理」ウィンドウ

まとめ

Excel VBA で、テーマカラーと最小値/最大値を指定してデータバーの条件付き書式を追加したい。AddDatabarメソッドでデータバーの条件付き書式オブジェクトを作ってから、そのプロパティとして色々と設定する記述をすることで、そのようなコードを作れた。

やりたいこと

Excel VBA で、テーマカラーと最小値/最大値を指定して、データバーの条件付き書式を追加したい。見た目はグラデーションがよい。データバーの値の範囲(最小値/最大値)は、1から10としたい。

試した環境

Microsoft Excel for Microsoft 365 MSO (バージョン 2408 ビルド 16.0.17928.20114) 64 ビット

やったこと

VBEで標準モジュールの中に以下のようなコードを書いてみた。

Option Explicit

Private Sub test()

'各種変数を宣言
Dim ws As Worksheet
Dim Range1 As Object
Dim DataBarStyle1 As dataBar

'必要なものを変数に入れておく。
Set ws = Sheets("Sheet1") '対象シート
Set Range1 = ws.Range(Cells(2, 1), Cells(10, 1)) '条件付き書式を指定したい範囲を変数に入れる。

'対象シートをアクティブシートにする。こうしておかないとなぜか失敗するかもしれない。
ws.Activate

'条件付き書式のデータバー追加メソッドにより、データバーのオブジェクトを変数に入れる。
Set DataBarStyle1 = Range1.FormatConditions.AddDatabar

'データバーの各種プロパティを設定
With DataBarStyle1
    .MinPoint.Modify newtype:=xlConditionValueNumber, newvalue:=1 '最小値
    .MaxPoint.Modify newtype:=xlConditionValueNumber, newvalue:=10 '最大値
    .BarFillType = xlDataBarFillGradient 'グラデーション
    .BarColor.ThemeColor = xlThemeColorAccent2 'テーマカラー
End With

End Sub

結果

上記のマクロを実行したところ、狙った通りの条件付き書式を作ることができた。

「条件付き書式ルールの管理」ウィンドウ

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