セルの背景色を条件に並べ替える
Sortオブジェクトを使うと色んな条件を指定して、データを並べ替えることができますが、
セルの背景色ごとに並べ替えをしたいときは、引数SortOnにxlSortOnCellColorを指定します。
サンプルコード
Public Sub Sample()
'セルに背景色を設定する
Range("A3").Interior.Color = RGB(255, 0, 0)
Range("A5").Interior.ColorIndex = 4
'■背景色で並べ替える
With Worksheets(1).Sort
.SortFields.Clear
'一番目の条件に黄緑色を設定
.SortFields.Add(Key:=Range("A1"), SortOn:=xlSortOnCellColor, Order:=xlAscending) _
.SortOnValue.ColorIndex = 4
'二番目の条件に赤色を設定
.SortFields.Add(Key:=Range("A1"), SortOn:=xlSortOnCellColor, Order:=xlAscending) _
.SortOnValue.Color = RGB(255, 0, 0)
.SetRange Range("A1:A5") '並べ替えるセルの範囲を指定
.Header = xlGuess 'タイトルの有無を自動判定
.Apply '上記条件で並べ替える
End With
End Sub
注意点
- 背景色を条件にする場合、SortFields.Addの後に「()」が必要となります。
- 色の指定はColorでRGB指定、ColorIndexで番号指定、どちらでも可能です。



コメント