Sortメソッド
指定セル範囲のデータを並べ替えるには、その指定セル範囲を表すRangeオブジェクトのSortメソッドを利用します。
並び替えを行う列を最大3列まで指定できます。
構文
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Function Range.Sort( [Key1], [Order1 As XlSortOrder = xlAscending], [Key2], [Type As XlSortType], [Order2 As XlSortOrder = xlAscending], [Key3], [Order3 As XlSortOrder = xlAscending], [Header As XlYesNoGuess = xlNo], [OrderCustom], [MatchCase], [Orientation As XlSortOrientation = xlSortRows], [SortMethod As XlSortMethod = xlPinYin], [DataOption1 As XlSortDataOption = xlSortNormal], [DataOption2 As XlSortDataOption = xlSortNormal], [DataOption3 As XlSortDataOption = xlSortNormal]) |
親オブジェクト | 並べ替えを行うセル範囲をRangeオブジェクトで指定します。
単一セルの指定も可能です。 単一セルを指定した場合はその単一セルを含む入力されているセルの範囲が対象になります。 |
||||||||||||
Key1 (省略可) |
一番優先して並べ替える列をRangeオブジェクトで指定します。 | ||||||||||||
Order1 (省略可) |
引数Key1で指定した列の並び順をXlSortOrder列挙型で指定します。
XlSortOrder列挙型
|
||||||||||||
Key2 (省略可) |
2番目に優先して並べ替える列をRangeオブジェクトで指定します。 | ||||||||||||
Type (省略可) |
ピボットテーブルレポートの並び替えを行う場合にのみ使用します。
XlSortType列挙型を指定します。 XlSortType列挙型
|
||||||||||||
Order2 (省略可) |
引数Key2で指定した列の並び順をXlSortOrder列挙型で指定します。
XlSortOrder列挙型
|
||||||||||||
Key3 (省略可) |
3番目に優先して並べ替える列をRangeオブジェクトで指定します。 | ||||||||||||
Order3 (省略可) |
引数Key3で指定した列の並び順をXlSortOrder列挙型で指定します。
XlSortOrder列挙型
|
||||||||||||
Header (省略可) |
1行目を見出しとするかをXlYesNoGuess列挙型で指定します。
XlYesNoGuess列挙型
|
||||||||||||
OrderCustom (省略可) |
ユーザー設定リストの順番を数値で指定します。 | ||||||||||||
MatchCase (省略可) |
大文字と小文字を区別するかを指定します。
Trueは区別し、Falseは区別しません。 |
||||||||||||
Orientation (省略可) |
並べ替えが行単位か列単位のどちらで行うかをXlSortOrientation列挙型で指定します。
XlSortOrientation列挙型
|
||||||||||||
SortMethod (省略可) |
並べ替えがふりがな順か文字の画数順のどちらで行うかをXlSortMethod列挙型で指定します。
既定値のふりがな順を指定した場合にふりがな情報を持っていない場合は音読み順に並べ替えられます。 XlSortMethod列挙型
|
||||||||||||
DataOption1 (省略可) |
Key1で指定した列範囲の並べ替えがテキストと数値を同じに扱うか別に扱うかをXlSortDataOption列挙型で指定します。
XlSortDataOption列挙型
|
||||||||||||
DataOption2 (省略可) |
Key2 〃 | ||||||||||||
DataOption3 (省略可) |
Key3 〃 | ||||||||||||
戻り値 | 並べ替えが正常に行われた場合はTrueが返ります。
エラーが発生した場合は何も返されずFalseにはなりません。 |
注意点
以下の引数はSortメソッドを実行する度にExcelの情報として保存されます。
- Header
- Order1
- Order2
- Order3
- Orientation
これらの引数を省略した場合は、前回の設定値が有効になります。
前回のSortの結果に影響されたくない場合は引数は省略せずに実行するようにしてください。
実行時エラー
指定セル範囲にデータがない場合は実行時エラー1004が発生します。
このエラーが出た場合はSortメソッドの親オブジェクトとして指定したセル範囲に値が設定されていないことが考えられます。
エラーになるかどうか分からない場合はOn Error Resume Nextなどでエラー対策を行う必要があります。
サンプルコード
Sortメソッドのサンプルです。
A1セルを基準とするデータに対して、B2セル以降で昇順の並べ替えを行うようにしています。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Sub SortObjTest() On Error Resume Next Dim r As Range Dim ret Set r = Range("A1") ret = r.Sort( _ Key1:=Range("B2"), _ Order1:=xlAscending, _ Header:=xlYes) End Sub |
実行前
実行後
B2セル以降で並べ替えが行われています。