関数・メソッド

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

Sortオブジェクト

Excel2007以降に実装されている並べ替え機能です。
Sortメソッドよりも並べ替えの条件に指定できるキーが多彩です。

Sortオブジェクトのメソッド説明
Apply現在適用されている並べ替え状態に基づいて範囲を並べ替え
SetRangeSortオブジェクトの開始と終了位置を設定
SortFields.Addの引数定数説明
Key基準セル
SortOnxlSortOnValues値で並べ替え
xlSortOnCellColor背景色で並べ替え
xlSortOnFontColor文字色で並べ替え
xlSortOnIconアイコンで並べ替え
OrderxlAscending昇順
xlDescending降順
CustomOrderユーザー設定を基準とした並べ替え
DataOptionxlSortNormal文字と数値を別に並べ替え
xlSortTextAsNumbers文字を数値として並べ替え
Sortプロパティ定数説明
HeaderxlYes先頭行を見出しとする
xlNo先頭行をデータとする
xlGuess見出しの有無を自動判定する
MatchCaseTure大文字と小文字を区別する
False大文字と小文字を区別しない
OrientationxlSortRows行方向に並べ替え
xlSortColumn列方向に並べ替え
Parent指定したオブジェクトの親オブジェクトを取得
Rng並べ替えるデータの範囲を返す
SortFieldsSortFieldオブジェクトのコレクション
SortMethodxlPinYinふりがなで並べ替え
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メソッドを使用するほうがいいでしょう。

 

関連記事

コメント

タイトルとURLをコピーしました