2007からは色のソートがサポートされているが、複数の色を指定順/パレット順/コード順などで並べ替えてくれる訳ではなく、どうやら指定した色を上位に持ってくるだけのようだ。


以下に記録したコードを記載する。




Sub Macro1()

'

' Macro1 Macro

'


'

Range("K33").Select

ActiveWorkbook.Worksheets("xxxx").AutoFilter.Sort.SortFields.Clear

ActiveWorkbook.Worksheets("xxxx").AutoFilter.Sort.SortFields.Add(Range( _

"K21:K599"), SortOnFontColor, xlAscending, , xlSortNormal).SortOnValue.Color = _

RGB(255, 0, 0)

With ActiveWorkbook.Worksheets("xxxx").AutoFilter.Sort

.SetRange Range("C20:BU599")

.Header = xlYes

.MatchCase = False

.Orientation = xlTopToBottom

.SortMethod = xlPinYin

.Apply

End With

End Sub




SortOnValue はヘルプでは見つからなかった。オブジェクトブラウザで調べるとはObject 型のプロパティだそうである。