関数・メソッド

セルの背景色を条件に並べ替える【Sortオブジェクト】【ExcelVBA】

セルの背景色を条件に並べ替える

Sortオブジェクトを使うと色んな条件を指定して、データを並べ替えることができますが、
セルの背景色ごとに並べ替えをしたいときは、引数SortOnxlSortOnCellColorを指定します。

サンプルコード

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で番号指定、どちらでも可能です。

 

関連記事

コメント

タイトルとURLをコピーしました