条件付き書式の適用範囲を変えると、参照先が自動で追従する?

昨日は、リストボックスに表示したシート内全ての条件付き書式について、選択したものを統合してみた。
infoment.hatenablog.com
本日は諸般の事情であまり時間が無いので、現時点でわかっていることを二つ載せるのみとする。
f:id:Infoment:20181225225227p:plain

1.適用範囲に参照先が追従する

まず、統合前の条件式を見てみる。
f:id:Infoment:20181225225506p:plain

この三つの式を見ると、それぞれが、適用範囲の一番左上のセルを指定している。

条件式 適用範囲 適用範囲の一番左上
=WEEKDAY(Q3)=1 $Q$3:$W$8 Q3
=WEEKDAY(I3)=1 $I$3:$O$8 I3
=WEEKDAY(A3)=1 $A$3:$G$8 A3

一方、昨日作成したコードでは、以下のルールで統合していた。

  1. 選択したもののうち、リストの最初に登場するものを除き削除する
  2. 残ったリスト項目に、削除した条件の適用範囲を追加する

このルールで行けば、残るのは「Q3」を参照する数式になる。
正直、このアドレスをどのようにして「A3」、つまり統合された適用範囲の中で最も左上にあるセルに付け替えれば良いか、思案していた。しかし試しに統合してみたところ、Excel側で空気を読み、良い感じで「A3」へ置き換わっていた。

f:id:Infoment:20181225230441p:plain

ありがとう、Excel

2.優先順位が変わる。

昨日の統合テストでは、結果が正しく表示されなかった。

f:id:Infoment:20181225230729p:plain
本来は薄灰色で表示されるべき12月30日が、日曜日を表す赤色になっている。

調べてみて、原因はすぐに分かった。本来3つのルールの真ん中にあった条件が、適用範囲の再設定を機に優先順位1位になっていたのだ。

【統合前】
f:id:Infoment:20181225231102p:plain

【統合後】
f:id:Infoment:20181225231132p:plain

手動で優先順位を変更したところ、本来の表示に戻すことが出来た。
f:id:Infoment:20181225231225p:plain

このことから単純に統合するのではなく、統合前の優先順位を含めた再設定が必要と思われる。

ですが、今日はここまで、時間切れ。
実際の工夫については、明日挑戦することにします。

参考まで。