行全体や列全体の背景色を変更する
Excelで表を使用している場合、特定の条件に該当する箇所を色付けしたくなります!それが条件付き書式ですよね!
そして、それをより目立たせるために行うのが、行全体とか列全体の背景色を変える条件付き書式です
■行全体のサンプル
以下のサンプル画像は、『平均点が82点以上の行の背景色を色付け』したものです
この『平均点が82点以上の行の背景色を色付け』は、どのような手順で行うかを順を追って説明していきます!
■行全体の設定手順
・選択範囲
①まずは背景色を設定する範囲を選択します
ポイントは、以下の2点(同じことを言うてるんですけどねw)
- ヘッダ行を含めないこと
- データ行のみを選ぶこと
フィルターのイメージで、ヘッダ行を選択範囲に含めてしまう人が多いかと思いますが、それがそもそもの間違いなのです!
「ヘッダ行は要らない」をお忘れなく!w
※背景色を塗りたい範囲は、名前や合計、平均の列を塗りたくない場合は、範囲から外してください
・新しいルールを選択
②選択範囲が決まれば、条件付き書式から「新しいルール」を選択します
『・・・82点以上の・・・』なので、
「セルの強調表示ルール」にある「指定の値より大きい」を選んぶ人がいます
しかし、それを選ぶと『平均点が82点以上の行・・・』が指定できません
・数式を指定して、書式設定するセルを決定
③「新しい書式ルール」の画面では、「数式を指定して、書式設定するセルを決定」を選択します
『平均点が82点以上・・・』を指定するためには、数式を使用する必要があります!
・次の数式を満たす場合に値を書式設定
そして一番の肝となるのは「次の数式を満たす場合に値を書式設定」です
④セルを指定するため、カーソル(キャレット)をテキストボックスに設定します
※「ルールの種類」が選択された状態だと、セルが選択できません
– 数式に使用する対象セルを選択
次に、『平均点が・・・』を示すために、
⑤「平均」列の最初のデータ(選択範囲の先頭行)を選択します!
※「次の数式を満たす場合に値を書式設定」には、「=$M$4」と設定されます
ここで、ありがちなミスは以下のようなものがあります
- 平均の列を選択してしまう(「=$M:$M」と設定)
- 平均の列のデータを全て選択してしまう(「=$M$4:$M$8」と設定)
※「該当行だけ」を設定できない
このありがちなミスをすると、正しく「該当行だけ」の背景を色付けしたくても、「該当行以外」の背景まで色付けしてしまうのです!
「表全体にこの条件式を設定しなければならない」と考えて、「平均」列を範囲指定してしまうのだと思いますが・・・
思い出してください
一番最初に、『条件式を適応させるための範囲を選択している』ことを!!!
つまり・・・既に表全体の範囲は選択済みです
だから・・・数式に範囲を指定する必要がありません
– 閾値を設定
それでは数式にを完成させます
答えから言うと数式は『平均点が82点以上の行・・・』なので、
⑥「=$M4>=82」と変更します!(先頭の「=」を消さないこと!)
セルを選択した際には、「=$M$4」と行側にも固定を意味する「$」がありましたが、これを削除します
「$4」の「$」を削除しないと、全ての行の判定で「M4」(M列の4行目)を見てしまいます
各行毎に判定したいのに、固定で4行目の「平均」(M列)を見てしまうことになります
・書式を設定
⑦あとはお好みの書式『・・・背景色を色付け』を設定すれば、完成ですね!
・マクロを確認
ちなみに上記の手順をマクロに記録した結果は以下になります
Sub Macro80() ' ' Macro80 行全体 ' ' Range("B4:M8").Select Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$M4>=82" Selection.FormatConditions(Selection.FormatConditions.count).SetFirstPriority With Selection.FormatConditions(1).Interior .PatternColorIndex = xlAutomatic .ThemeColor = xlThemeColorAccent4 .TintAndShade = 0.799981688894314 End With Selection.FormatConditions(1).StopIfTrue = False End Sub
■列全体のサンプル
以下のサンプル画像は、『平均点が82点以上の列の背景色を色付け』したものです
列の場合の違いは、選択範囲と数式ですね!
そこだけ抽出して以下に記載します
■列全体の設定手順
・選択範囲
まずは背景色を設定する範囲を選択します
ポイントは、以下の2点(これまた同じことを言うてるんですけどねw)
- ヘッダ列を含めないこと
- データ列のみを選ぶこと
この辺りは、もうお判りでしょう!
・新しいルールを選択
行全体の時と同様に「新しいルール」で「数式を指定して、書式設定するセルを決定」を選択して設定します
※この辺りは、行全体を参照してください
・次の数式を満たす場合に値を書式設定
この数式が行全体とは書き方が微妙に異なる点を注意してください
– 数式に使用する対象セルを選択
選択する対象セルは、一番左側(選択範囲の先頭)の「平均」ですね!
「=$C$10」と設定されます
– 閾値を設定
そして行とは違って、列ですから、列「$C」の固定「$」を削除します
条件は列全体も同じく『平均点が82点以上の列・・・』なので「=C$10>=82」です!
・書式を設定
書式『・・・背景色を色付け』を設定して完成です
・マクロを確認
同様に列全体の手順をマクロに記録した結果は以下になります
Sub Macro81() ' ' Macro81 列全体 ' ' Range("C2:K10").Select Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=C$10>=82" Selection.FormatConditions(Selection.FormatConditions.count).SetFirstPriority With Selection.FormatConditions(1).Interior .PatternColorIndex = xlAutomatic .ThemeColor = xlThemeColorAccent4 .TintAndShade = 0.799981688894314 End With Selection.FormatConditions(1).StopIfTrue = False End Sub
■最後に
もー少し失敗例を出した方がよかったかと思いましたが、判りましたでしょうか!?
行全体や列全体に条件付き書式を設定する場合の注意点は以下の通りですねー
- 最初に条件を適応する範囲を選択している
- 条件を適応する範囲はヘッダ部を含まない
- 条件式の固定すべきは行なのか列なのかを間違えない
このあたりに注意してご利用ください!w
・FormatConditionsについて
マクロに出てくるFormatConditionsプロパティについては、以下のサイトを参考にしてください
参考サイト:「FormatConditions プロパティ (Excel) | Microsoft Docs」
・VBAマクロの詳細な説明は・・
VBAマクロの詳細な説明は、第一弾の以下の「指定の値より大きい」を参照してください
ではでは