条件付き書式のカラースケールを設定します。自分で設定する場合は、範囲を選んで条件付き書式を選択し、カラースケールを選択します。


【サンプルプログラム】
Sub SampleProgram()
' C1の列にカラースケールを設定
AddFormatColorScale ActiveSheet, "C1"
End Sub
【関数化】
' ------------------------------------------------------------
' 説明:指定した列(列番号名)にカラースケール(3色)を設定
' 引数:1:処理対象のワークシート
' 2:基準となる Range(文字列) を指定
' 3:相対値の高いセルの色 省略時は 7039480 RGB(248,105,107)
' 4:中程度の値のセルの色 省略時は 8711167 RGB(255,235,132)
' 5:値の低いセルの色 省略時は 8109667 RGB(99,190,123)
' 補足:color3 を-1にすると2色表示
' ------------------------------------------------------------
Sub AddFormatColorScale(ws As Worksheet, column As String, _
Optional color1 As Long = 7039480, _
Optional color2 As Long = 8711167, _
Optional color3 As Long = 8109667)
Dim rng As Range
Dim idx As Long
' 指定した列(列番号名)の最終行(下から)までのRangeを取得
Set rng = GetLastRowRange(ws, column)
With rng
' 色の種類(2色 or 3色)
If color3 = -1 Then
' 2色を指定
.FormatConditions.AddColorScale ColorScaleType:=2
Else
' 3色を指定
.FormatConditions.AddColorScale ColorScaleType:=3
End If
' 複数の条件付き書式を設定する場合があるので、カラースケール(Type=3)を探す
For idx = 1 To .FormatConditions.Count
With .FormatConditions(idx)
If .Type = 3 Then
' 色を設定
.ColorScaleCriteria(1).FormatColor.Color = color1
.ColorScaleCriteria(2).FormatColor.Color = color2
If color3 <> -1 Then
.ColorScaleCriteria(3).FormatColor.Color = color3
End If
Exit For
End If
End With
Next idx
End With
End Sub
【条件付き書式をクリアするサンプルプログラム】
Sub SampleProgram_clear()
Dim rng As Range
Set rng = GetLastRowRange(ActiveSheet, "C1")
rng.FormatConditions.Delete
End Sub
【色サンプル】
左上から、順に色のサンプルを作成しました。
二段目の左2つと、三段目は2色となっていました。

AddFormatColorScale ActiveSheet, "C1", RGB(248,105,107), RGB(255,235,132), RGB(99,190,123)
AddFormatColorScale ActiveSheet, "C1", RGB(99,190,123), RGB(255,235,132), RGB(248,105,107)
AddFormatColorScale ActiveSheet, "C1", RGB(248,105,107), RGB(252,252,255), RGB(99,190,123)
AddFormatColorScale ActiveSheet, "C1", RGB(99,190,123), RGB(252,252,255), RGB(248,105,107)
AddFormatColorScale ActiveSheet, "C1", RGB(248,105,107), RGB(252,252,255), RGB(90,138,198)
AddFormatColorScale ActiveSheet, "C1", RGB(90,138,198), RGB(252,252,255), RGB(248,105,107)
AddFormatColorScale ActiveSheet, "C1", RGB(248,105,107), RGB(252,252,255),-1
AddFormatColorScale ActiveSheet, "C1", RGB(252,252,255), RGB(248,105,107),-1
AddFormatColorScale ActiveSheet, "C1", RGB(252,252,255), RGB(99,190,123),-1
AddFormatColorScale ActiveSheet, "C1", RGB(99,190,123), RGB(252,252,255),-1
AddFormatColorScale ActiveSheet, "C1", RGB(255,239,156), RGB(99,190,123),-1
AddFormatColorScale ActiveSheet, "C1", RGB(99,190,123), RGB(255,239,156),-1
【補足】
以下の関数を使用していますので、リンクから関数をコピーします。
・指定位置から列の下までのRangeを取得 – GetLastRowRange


コメント