並び替えsort関数、2007以降と2003まで
sort関数の使用例を比較します。まずは、2007年以降は、以下。
Sub 並び替え2007以降()
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
With ws.Sort
.SortFields.Clear ' 既存の条件をクリア
.SortFields.Add2 _
Key:=Range("A2"), _
SortOn:=xlSortOnValues, _
Order:=xlAscending, _
DataOption:=xlSortNormal
' Add2:条件追加、Add2は複数可能
' Key:この例では、A列が基準で並び替え。行はどこでもOK。
' SortOn:並び替えのタイプ、データ(xlSortOnValues)
' ・背景色(xlSortOnCellColor)・文字色(xlSortOnFontColor)・アイコン(xlSortOnIcon)
' Order:昇順(xlAscending) ・降順(xlDescending)
' DataOption:文字列を文字(xlSortNormal)or数値(xlSortTextAsNumbers)
.SetRange ws.UsedRange ' 並び替えの範囲。この例では、使用されているセル範囲
.Header = xlYes ' タイトル行の有(xlYes)無(xlNo),自動判定(xlGuess)。
.MatchCase = False ' 大文字と小文字の区別の有(True)無(False)。
.Orientation = xlTopToBottom ' 並び変える方向、行(xlTopToBottom)列(xlLeftToRight)。
.SortMethod = xlPinYin ' 日本語を、ふりがな(xlPinYin) or 文字コード(xlStroke)で並び替える。
.Apply ' 並び替えを実行
End With
End Sub
この例では、シート「Sheet1」の使用している範囲を、A列を基準に、並び替えします。
次に、2003までは、以下です。
Sub 並び替え2003まで()
' セルA1を含む表全体を、B列を基準に並び替え
Range("A1").Sort _
Key1:=Range("B1"), _
Order1:=xlAscending, _
Header:=xlYes
' Key1:この例では、B列が基準で並び替え。行はどこでもOK。
' Order1:昇順(xlAscending) ・降順(xlDescending)
' Header:タイトル行の有(xlYes)無(xlNo),自動判定(xlGuess)
End Sub
この例では、B列を基準に並び替えをします。
複数基準の並び替えの例は、以下を参考にしてください。