条件付き書式コレクションのi番目について、そのPriorityをj番目に変更する?
昨日は、条件付き書式の優先順位をマクロで変更してみた。
infoment.hatenablog.com
シート内i番目の条件付き書式のPriorityをj番目に変更する場合について、思案した。「i番目をj番目に」を、どうやって決めればよいか。
色々思案した結果、今回は人の手で一つずつ、Priorityをずらすことにした。そこで今回は、Priorityを一つずらすにあたっての仕様を、実験的に確認してみる。
一つ前にずらす
条件付き書式のうち、↓ 5位のものを4位にしてみる。
Sub ChangePriorityTest() Dim FC As FormatCondition Set FC = ActiveSheet.Cells.FormatConditions(5) FC.Priority = 4 End Sub
結果、4位と5位が入れ替わった。
しかも、6位が無くなっている。どういうことだろう。
では今度は、7位を5位にしてみる。
結果、8位が5位になった。
ここで改めて、これら表現の危うさに気付く。Priorityが何番目であるかということと、条件付き書式コレクションの何番目の要素であるかは別物。注意しよう。
以降「〇位が△位に」という表現は控えることにする。間違えないように今後は、並べ替えるたびPriorityについて、欠番が出ないよう番号を振り直すことにする。
Sub ResetFC() Dim i As Long: i = 1 Dim FC As FormatCondition For Each FC In ActiveSheet.Cells.FormatConditions FC.Priority = i i = i + 1 Next End Sub
一つ後にずらす
条件付き書式のうち、4番目の要素のPriorityを5に設定してみる。
結果、変更できなかった。
一つ前にずらすことは出来るのに、一つ後にずらすことは出来ないのか。
覚えておこう。
これらを踏まえ、次回は具体的な変更方法を検討してみます。
(これでまた一歩、野望に近づいた。)
参考まで。