最終行と最終列の取得セル範囲のソートには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