上位/下位ルール
条件付き書式の第二弾!上位/下位ルールについて、調べていきます
サンプルのVBAソースの詳細な説明は、第一弾の以下の「指定の値より大きい」を参照してください
■種類
まずはExcelのスタイルにある「条件付き書式」を開いてみます
簡単なものであれば、デフォルトで用意されている書式ルールを利用しても充分です
今回は「上位/下位ルール」について順に書式ルール毎に見ていきましょう
■上位/下位ルール
これはセルの値が上位や下位に含まれる場合に、セルを強調表示させるためのルールです
一番下にある「その他のルール」を選択した場合は、以下のような新しい書式ルールの画面が表示されます
「セルの強調表示ルール」でも使用した以下のデータをサンプルにして、条件付き書式を施してみます
条件付き書式の対象範囲は、上図のサンプルデータの背景色が白い点数部分を対象として行います(範囲[Range]は「C4:K8」です)
・上位10項目
上位10項目に入る値のセルに対して、指定した書式を施します
「上位10項目」を選択して、値が「10」の結果が以下になります
– 書式ルールを確認
– マクロで記録してみる
上位10項目の設定をマクロを使って、保存した結果が以下のVBAソースです
「上位」と「10」と「項目」というのが新しい項目で含まれているはずです
Sub Macro10() ' ' Macro10 上位10項目 ' ' Range("C4:K8").Select Selection.FormatConditions.AddTop10 Selection.FormatConditions(Selection.FormatConditions.count).SetFirstPriority With Selection.FormatConditions(1) .TopBottom = xlTop10Top .Rank = 10 .Percent = False End With With Selection.FormatConditions(1).Font .Color = -16383844 .TintAndShade = 0 End With With Selection.FormatConditions(1).Interior .PatternColorIndex = xlAutomatic .Color = 13551615 .TintAndShade = 0 End With Selection.FormatConditions(1).StopIfTrue = False End Sub
– マクロの説明
・簡単に説明
※VBAソースの詳細な説明は、その1の「指定の値より大きい」を参照
8行目:[AddTop10メソッド]で追加
9行目:優先順位の設定
10-14行目:条件の設定
- .TopBottom = xlTop10Top は「上位」
- .Rank = 10 は「10」
- .Percent = False は「%ではない」
15-18行目:フォント設定
19-23行目:背景設定
24行目:条件を満たす場合は停止するかどうか
・上位10%
上位10%に入る値のセルに対して、指定した書式を施します
「上位10%」を選択して、値が「10」の結果が以下になります
– 書式ルールを確認
– マクロで記録してみる
「上位10項目」が「上位10%」と単位が変わっています
Sub Macro11() ' ' Macro11 上位10% ' ' Range("C4:K8").Select Selection.FormatConditions.AddTop10 Selection.FormatConditions(Selection.FormatConditions.count).SetFirstPriority With Selection.FormatConditions(1) .TopBottom = xlTop10Top .Rank = 10 .Percent = True End With With Selection.FormatConditions(1).Font .Color = -16383844 .TintAndShade = 0 End With With Selection.FormatConditions(1).Interior .PatternColorIndex = xlAutomatic .Color = 13551615 .TintAndShade = 0 End With Selection.FormatConditions(1).StopIfTrue = False End Sub
– マクロの説明
・異なるところだけを説明
※VBAソースの詳細な説明は、その1の「指定の値より大きい」を参照
10-14行目:条件の設定
- .TopBottom = xlTop10Top は「上位」
- .Rank = 10 は「10」
- .Percent = True は「%」
・下位10項目
下位10項目に入る値のセルに対して、指定した書式を施します
「下位10項目」を選択して、値が「10」の結果が以下になります
– 書式ルールを確認
– マクロで記録してみる
「上位」が「下位」に変わっています
サブMacro12() ' ' Macro12 下位10項目 ' ' Range( "C4:K8")。選択 Selection.FormatConditions.AddTop10 Selection.FormatConditions(Selection.FormatConditions.count).SetFirstPriority Selection.FormatConditions(1)を使用 .TopBottom = xlTop10Bottom 。ランク= 10 .Percent = False で終わる Selection.FormatConditions(1).Fontを使用 .Color = -16383844 .TintAndShade = 0 で終わる Selection.FormatConditions(1).Interiorを使用 .PatternColorIndex = xlAutomatic .Color = 13551615 .TintAndShade = 0 で終わる Selection.FormatConditions(1).StopIfTrue = False End Sub
– マクロの説明
・異なるところだけを説明
※VBAソースの詳細な説明は、その1の「指定の値より大きい」を参照
10-14行目:条件の設定
- .TopBottom = xlTop10Bottom は「下位」
- .Rank = 10 は「10」
- .Percent = False は「%ではない」
※8行目のAddTop10メソッドは変わらないのです
・下位10%
下位10%に入る値のセルに対して、指定した書式を施します
「下位10%」を選択して、値が「10」の結果が以下になります
– 書式ルールを確認
– マクロで記録してみる
「下位10項目」が「下位10%」と単位が変わっています
Sub Macro13() ' ' Macro13 下位10% ' ' Range("C4:K8").Select Selection.FormatConditions.AddTop10 Selection.FormatConditions(Selection.FormatConditions.count).SetFirstPriority With Selection.FormatConditions(1) .TopBottom = xlTop10Bottom .Rank = 10 .Percent = True End With With Selection.FormatConditions(1).Font .Color = -16383844 .TintAndShade = 0 End With With Selection.FormatConditions(1).Interior .PatternColorIndex = xlAutomatic .Color = 13551615 .TintAndShade = 0 End With Selection.FormatConditions(1).StopIfTrue = False End Sub
– マクロの説明
・異なるところだけを説明
※VBAソースの詳細な説明は、その1の「指定の値より大きい」を参照
10-14行目:条件の設定
- .TopBottom = xlTop10Bottom は「下位」
- .Rank = 10 は「10」
- .Percent = True は「%」
・平均より上
平均より上に入る値のセルに対して、指定した書式を施します
「平均より上」を選択して、値が「より上」の結果が以下になります
– 書式ルールを確認
– マクロで記録してみる
「平均より」「上」という新しい項目が増えている
Sub Macro14() ' ' Macro14 平均より上 ' ' Range("C4:K8").Select Selection.FormatConditions.AddAboveAverage Selection.FormatConditions(Selection.FormatConditions.count).SetFirstPriority Selection.FormatConditions(1).AboveBelow = xlAboveAverage With Selection.FormatConditions(1).Font .Color = -16383844 .TintAndShade = 0 End With With Selection.FormatConditions(1).Interior .PatternColorIndex = xlAutomatic .Color = 13551615 .TintAndShade = 0 End With Selection.FormatConditions(1).StopIfTrue = False End Sub
– マクロの説明
・異なるところだけを説明
※VBAソースの詳細な説明は、その1の「指定の値より大きい」を参照
8行目:AddAboveAverageメソッドを使って追加
[AddTop10メソッド]ではなく、[AddAboveAverageメソッド]が使用されています
つまりは、[AddAboveAverageメソッド]が「平均より上または下の値だけを書式設定」を意味しています
10行目:条件の設定が1行になっている
- AboveBelow = xlAboveAverage は「より上」
・平均より下
平均より下に入る値のセルに対して、指定した書式を施します
「平均より下」を選択して、値が「より下」の結果が以下になります
– 書式ルールを確認
– マクロで記録してみる
「平均より上」が「平均より下」に変わっている
Sub Macro15() ' ' Macro15 平均より下 ' ' Range("C4:K8").Select Selection.FormatConditions.AddAboveAverage Selection.FormatConditions(Selection.FormatConditions.count).SetFirstPriority Selection.FormatConditions(1).AboveBelow = xlBelowAverage With Selection.FormatConditions(1).Font .Color = -16383844 .TintAndShade = 0 End With With Selection.FormatConditions(1).Interior .PatternColorIndex = xlAutomatic .Color = 13551615 .TintAndShade = 0 End With Selection.FormatConditions(1).StopIfTrue = False End Sub
– マクロの説明
・異なるところだけを説明
※VBAソースの詳細な説明は、その1の「指定の値より大きい」を参照
10行目:条件の設定が変わっている
- AboveBelow = xlBelowAverage は「より下」
※8行目のAddAboveAverageメソッドは変わらない
■最後に
今回は、「上位/下位ルール」のみで終わりにします
次回は、「データバー」「カラースケール」を調べます
ではでは