データのソーティングを自動化したいとき、Sortメソッドを使用すると便利です。今回はその使い方を紹介します。
Sortメソッドの使い方
構文は下記のとおりです。
1 2 3 4 |
object.Sort ( [Key1] [, Order1] [, Key2] [, Order2] [, Key3] [, Order3] _ [, Header] [, OrderCustom] [, MatchCase] [, Orientation] [, SortMethod] _ [, DataOption1] [, DataOption2] [, DataOption3] ) |
引数が多いですが、1つずつ解説していきます。どれも省略可能です。
- Object:Sortメソッドを使用したいオブジェクト全体を指定します。
- Key1~3:並べ替えるフィールドを文字列またはRangeオブジェクトで、3つまで指定します。
- Order1~3:「xlAscending」(昇順でソート)または、「xlDescending」(降順でソート)を選びます。省略した場合「xlAscending」となります。
- Header:先頭の行をタイトル行とみなすかどうかを指定します。「xlGuess」なら自動判定、「xlYes」なら見なす、「xlNo」なら見なさないです。省略すると「xlNo」になります。
- OrderCustom:ユーザー設定の並べ替え順のリストがある場合、その番号を指定します。省略するとデフォルトの設定になります。
- MatchCase:大文字小文字を区別するかしないかを指定します。「True」なら区別する、「False」なら区別しないとなります。省略すると「False」になります。
- Orientation:「xlSortColumns」(列単位で並び替え)か、「xlSortRows」(行単位で並び替え)かを選びます。省略すると、「xlSortRows」になります。
- SortMethod:「xlPinYin」(日本語のふりがなの順で並び替え)または「xlStroke」(文字コードの順で並び替え)を指定します。省略すると、「xlPinYin」になります。
- DataOption:「xlSortNormal」(文字列と数値を別に並び替える)「xlSortTextAsNumbers」(文字列と数値の区別なく並び替える)を指定します。省略すると、「xlSortNormal」になります。
使用例
こちらのデータを、いろいろな順番に並び替えていきます。
①名前順に並び替え
1 2 3 4 5 6 7 |
Sub Sort_test1() Range("A2:F17").Sort _ Key1:=Range("A2"), _ Order1:=xlAscending, _ Header:=xlGuess, _ SortMethod:=xlPinYin End Sub |
②年間売上高が低い順に並び替え
1 2 3 4 5 6 |
Sub Sort_test2() Range("A2:F17").Sort _ Key1:=Range("F2"), _ Order1:=xlDescending, _ Header:=xlGuess End Sub |