条件付き書式コレクションのi番目について、そのPriorityをj番目に変更する?

昨日は、条件付き書式の優先順位をマクロで変更してみた。
infoment.hatenablog.com
シート内i番目の条件付き書式のPriorityをj番目に変更する場合について、思案した。「i番目をj番目に」を、どうやって決めればよいか。

色々思案した結果、今回は人の手で一つずつ、Priorityをずらすことにした。そこで今回は、Priorityを一つずらすにあたっての仕様を、実験的に確認してみる。
f:id:Infoment:20181227200202p:plain

一つ前にずらす

条件付き書式のうち、↓ 5位のものを4位にしてみる。
f:id:Infoment:20181227201050p:plain

Sub ChangePriorityTest()
    Dim FC As FormatCondition
    Set FC = ActiveSheet.Cells.FormatConditions(5)
        FC.Priority = 4
End Sub

結果、4位と5位が入れ替わった。
f:id:Infoment:20181227201242p:plain

しかも、6位が無くなっている。どういうことだろう。
では今度は、7位を5位にしてみる。
f:id:Infoment:20181227201348p:plain

結果、8位が5位になった。
f:id:Infoment:20181227201539p:plain

ここで改めて、これら表現の危うさに気付く。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

f:id:Infoment:20181227215730p:plain

一つ後にずらす

条件付き書式のうち、4番目の要素のPriorityを5に設定してみる。
f:id:Infoment:20181227220143p:plain

結果、変更できなかった。
f:id:Infoment:20181227220254p:plain

一つ前にずらすことは出来るのに、一つ後にずらすことは出来ないのか。
覚えておこう。



これらを踏まえ、次回は具体的な変更方法を検討してみます。
(これでまた一歩、野望に近づいた。)

参考まで。