カラースケール
条件付き書式の第四弾!カラースケールについて調べていきます
サンプルソースの詳細な説明は、第一弾の以下の「指定の値より大きい」を参照してください
■種類
まずはExcelのスタイルにある「条件付き書式」を開いてみます

簡単なものであれば、デフォルトで用意されている書式ルールを利用しても充分です
今回は「カラースケール」について順に書式ルール毎に見ていきましょう
■カラースケール
これはセルの値を2色や3色のグラデーションを使用して、色の濃淡でセルを強調表示させるためのルールです
一番下にある「その他のルール」を選択した場合は、以下のような新しい書式ルールの画面が表示されます
「セルの強調表示ルール」でも使用した以下のデータをサンプルにして、条件付き書式を施してみます
条件付き書式の対象範囲は、上図のサンプルデータの背景色が白い点数部分を対象として行います(範囲[Range]は「C4:K8」です)
・3色スケール
3つの色を使用して、指定した中間値を基準に大、中、小の値に対してそれぞれ指定した書式を施します






色のパターンを選択するだけで、中間値も自動で決まって、書式が施されますので便利ですね
– 書式ルールを確認
– マクロで記録してみる
緑、黄、赤のカラースケールの設定をマクロを使って、保存した結果が以下のVBAソースです
Sub Macro30() ' ' Macro30 カラースケール(3色) ' ' Range("C4:K8").Select Selection.FormatConditions.AddColorScale ColorScaleType:=3 Selection.FormatConditions(Selection.FormatConditions.count).SetFirstPriority Selection.FormatConditions(1).ColorScaleCriteria(1).Type = _ xlConditionValueLowestValue With Selection.FormatConditions(1).ColorScaleCriteria(1).FormatColor .Color = 7039480 .TintAndShade = 0 End With Selection.FormatConditions(1).ColorScaleCriteria(2).Type = _ xlConditionValuePercentile Selection.FormatConditions(1).ColorScaleCriteria(2).Value = 50 With Selection.FormatConditions(1).ColorScaleCriteria(2).FormatColor .Color = 8711167 .TintAndShade = 0 End With Selection.FormatConditions(1).ColorScaleCriteria(3).Type = _ xlConditionValueHighestValue With Selection.FormatConditions(1).ColorScaleCriteria(3).FormatColor .Color = 8109667 .TintAndShade = 0 End With End Sub
– マクロの説明
・簡単に説明
※VBAソースの詳細な説明は、その1の「指定の値より大きい」を参照
8行目:[AddColorScaleメソッド]で追加
9行目:優先順位の設定
10-11行目:[ColorScaleCriteriaコレクション]の1番目の種類を「最小値」に設定
12-15行目:[ColorScaleCriteriaコレクション]の1番目の「色」を設定
16-17行目:[ColorScaleCriteriaコレクション]の2番目の種類を「百分位」に設定
18行目:[ColorScaleCriteriaコレクション]の2番目の値を「50」に設定
19-22行目:[ColorScaleCriteriaコレクション]の2番目の「色」を設定
23-24行目:[ColorScaleCriteriaコレクション]の3番目の種類を「最大値」に設定
25-28行目:[ColorScaleCriteriaコレクション]の3番目の「色」を設定
・2色スケール
2つの色を使用して、指定した値を基準に大、小の値に対してそれぞれ指定した書式を施します






2色パターンを選択するだけで、書式が施されますので判り易いですね
– 書式ルールを確認
– マクロで記録してみる
白、赤のカラースケールの設定をマクロを使って、保存した結果が以下のVBAソースです
Sub Macro31() ' ' Macro31 カラースケール(2色) ' ' Selection.FormatConditions.AddColorScale ColorScaleType:=2 Selection.FormatConditions(Selection.FormatConditions.count).SetFirstPriority Selection.FormatConditions(1).ColorScaleCriteria(1).Type = _ xlConditionValueLowestValue With Selection.FormatConditions(1).ColorScaleCriteria(1).FormatColor .Color = 7039480 .TintAndShade = 0 End With Selection.FormatConditions(1).ColorScaleCriteria(2).Type = _ xlConditionValueHighestValue With Selection.FormatConditions(1).ColorScaleCriteria(2).FormatColor .Color = 16776444 .TintAndShade = 0 End With End Sub
– マクロの説明
・簡単に説明
※VBAソースの詳細な説明は、その1の「指定の値より大きい」を参照
3色と2色の違いがどこに出ているのかを見ていきます
2色の場合は、[ColorScaleCriteriaコレクション]が2つしかありません
そして、最小値と最大値の設定のみで、中央値は存在しません
■最後に
・「百分位」とは?
選択された全データの値を百等分して順位(下から上に何番目)を指定するのが「百分位」という設定方法になり、値で指定した「50」は100個中の50個目(中央値)を意味します
※「100分の50(=50%)」とは意味が異なりますので、ご注意ください!
サンプルのように45個しか値がなくても「百分位」で「50」は中央値を指定する値として設定することができます
・次回は
アイコンセットを調べていきます!
それが終わったら、条件付き書式を利用して、1行や1列を塗り潰す方法を簡単に紹介していこうと思います!
ではでは