関数・メソッド

並べ替え機能を使う【Sortオブジェクト】【ExcelVBA】

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メソッドを使用するほうがいいでしょう。

 

関連記事

コメント