4.ソート
セル範囲のソートには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
|