Sortオブジェクト
Excel2007以降に実装されている並べ替え機能です。
Sortメソッドよりも並べ替えの条件に指定できるキーが多彩です。
| Sortオブジェクトのメソッド | 説明 |
|---|---|
| Apply | 現在適用されている並べ替え状態に基づいて範囲を並べ替え |
| SetRange | Sortオブジェクトの開始と終了位置を設定 |
| SortFields.Addの引数 | 定数 | 説明 |
|---|---|---|
| Key | ― | 基準セル |
| SortOn | xlSortOnValues | 値で並べ替え |
| xlSortOnCellColor | 背景色で並べ替え | |
| xlSortOnFontColor | 文字色で並べ替え | |
| xlSortOnIcon | アイコンで並べ替え | |
| Order | xlAscending | 昇順 |
| xlDescending | 降順 | |
| CustomOrder | ― | ユーザー設定を基準とした並べ替え |
| DataOption | xlSortNormal | 文字と数値を別に並べ替え |
| xlSortTextAsNumbers | 文字を数値として並べ替え |
| Sortプロパティ | 定数 | 説明 |
|---|---|---|
| Header | xlYes | 先頭行を見出しとする |
| xlNo | 先頭行をデータとする | |
| xlGuess | 見出しの有無を自動判定する | |
| MatchCase | Ture | 大文字と小文字を区別する |
| False | 大文字と小文字を区別しない | |
| Orientation | xlSortRows | 行方向に並べ替え |
| xlSortColumn | 列方向に並べ替え | |
| Parent | ― | 指定したオブジェクトの親オブジェクトを取得 |
| Rng | ― | 並べ替えるデータの範囲を返す |
| SortFields | ― | SortFieldオブジェクトのコレクション |
| SortMethod | xlPinYin | ふりがなで並べ替え |
| xlStroke | 文字コードで並べ替え |
整数を並べ替えるサンプルコード
Public Sub Sample()
'6までの数値をランダムに入力する
Dim i
Randomize
For i = 2 To 10
Cells(i, 1).Value = Int(6 * Rnd(1)) + 1
Next i
'■数値を降順で並べ替える
With Sheets(1).Sort
.SortFields.Clear 'ソートの条件をクリア
'A1を基準とし、引数を指定する
.SortFields.Add Key:=Range("A1"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
.SetRange Range("A1:A10") 'ソートの範囲を設定
.Header = xlGuess '先頭行を自動判定
.Orientation = xlSortColumns '列方向で並べ替え
.Apply '並べ替える
End With
End Sub
注意点
- Sortオブジェクトを使うとコードが長くなってしまうため、
単純な並べ替えにはSortメソッドを使用するほうがいいでしょう。
コメント