セル範囲のソートにはSortメソッドを使用します。引数により昇順、降順などを指定できます。
メソッド | 引数 | 定数 | 内容 |
---|---|---|---|
Sort | |||
Key1 | 文字列、Rangeオブジェクトを指定します。 | ||
Order1 | xlAscending | 昇順に並び替える | |
xlDescending | 降順に並び替える | ||
Key2 | 2番目に優先される文字列,Rangeオブジェクトを指定します | ||
Order2 | xlAscending | 昇順に並び替える | |
xlDescending | 降順に並び替える | ||
Key3 | 3番目に優先される文字列,Rangeオブジェクトを指定します | ||
Order3 | xlAscending | 昇順に並び替える | |
xlDescending | 降順に並び替える | ||
Header | xlGuess | 先頭行をタイトル行か自動判定する | |
xlNo | 先頭行をタイトル行と見なさない | ||
xlYes | 先頭行をタイトル行と見なす | ||
OrderCustom | |||
MatchCase | TRUE | 大文字・小文字を区別する | |
FALSE | 大文字・小文字を区別しない | ||
Orientation | xlSortRows | 上から下へ(行の並び替え) | |
xlSortColumn | 左から右へ(列の並び替え) | ||
SortMethod | xlPinYin | ||
xlStroke |
'セル範囲"A1:B100"を2列目をキーにして昇順にソート
Sub SortTest()
Worksheets("Sheet1").Activate
Worksheets("Sheet1").Range(Cells(1, 1), Cells(100, 2)) _
.Sort Key1:=Worksheets("Sheet1").Cells(1, 2),order1:=xlAscending
End Sub
'セル範囲"A1:B100"を2列目をキーにして降順ににソート
Sub SortTest()
Worksheets("Sheet1").Activate
Worksheets("Sheet1").Range(Cells(1, 1), Cells(100, 2)) _
.Sort Key1:=Worksheets("Sheet1").Cells(1, 2),order1:=xlDescending
End Sub
'セル範囲"A1:B100"を2列目をキーにして昇順にソート
Sub SortTest()
Worksheets("Sheet1").Activate
Worksheets("Sheet1").Range("A1:B100") _
.Sort Key1:=Range("B1"),order1:=xlAscending
End Sub
'セル範囲"A1:B100"を2列目をキーにして降順ににソート
Sub SortTest()
Worksheets("Sheet1").Activate
Worksheets("Sheet1").Range("A1:B100") _
.Sort Key1:=Range("B1"),order1:=xlDescending
End Sub
以下の例ではキーを複数指定してセル範囲をソートしています。
'セル範囲"A1:C100"を1列目は降順、2列目は昇順、3列目は降順にソート
Sub SortTest()
Worksheets("Sheet1").Range(Cells(1, 1), Cells(300, 3)) _
.Sort Key1:=Worksheets("Sheet1").Cells(1, 1), order1:=xlDescending, _
Key2:=Worksheets("Sheet1").Cells(1, 2), order2:=xlAscending, _
Key3:=Worksheets("Sheet1").Cells(1, 3), order3:=xlDescending
End Sub
'セル範囲"A1:C100"を1列目は降順、2列目は昇順、3列目は降順にソート
Sub SortTest()
Worksheets("Sheet1").Activate
Worksheets("Sheet1").Range("A1:C100") _
.Sort Key1:=Range("A1"), order1:=xlDescending, _
Key2:=Range("B1"), order2:=xlAscending, _
Key3:=Range("C1"), order3:=xlDescending
End Sub