PCメモ

Excelを中心とした業務改善の記録

並べ替え(SortオブジェクトSortメソッド)

並べ替え

Excel2007以降の並べ替え

SortオブジェクトとSortFieldオブジェクトを使って並べ替えを行う。

最大で64個のキーを設定可能。

Sub 並べ替え()

 With ActiveSheet.Sort

  '前回の並べ替え条件をクリア
  .SortFields.Clear

 

  'A1を基準に並べ替え 昇順
  .SortFields.Add2 Key:=Range("A1"), Order:=xlAscending


  '並べ替え範囲
  .SetRange Range("A2:B12")

  '並べ替え実行
  .Apply

 End With

End Sub

 

Excel2003までの並べ替え

Sortメソッドを使って並べ替えを行う。

最大で3個のキーを設定可能。

Range("A1").Sort Key1:=Range("A1"). Order1:=xlAscendung, Header:=xlYes

A1を含む表全体を、A列に入力されている数値の昇順で並べ替える

 

A1を基準に昇順で並べ替えを行った

f:id:abv72:20210421224747p:plain

 

 

 

  Sortオブジェクトのメンバー

SortOn ~並べ替えのタイプ~

定数 数値 意味
xlSortOnValues
0
セル内のデータで並べ替え
xlSortOnCellColor
1
セルの背景で並べ替え
xlSortOnFontColor
2
セルの文字色で並べ替え

 ActiveSheet.Sort.SortFields.Add2 Key:=Range("A1"), SortOn:=xlSortOnCellColor

 

Order ~並べ替えの順番~

定数 数値 意味
xlAscending
 1
昇順
xlDescending
2
降順

ActiveSheet.Sort.SortFields.Add2 Key:=Range("A1"), Order:=xlAscending

 

DataOption ~数値と文字が混在~

定数 数値 意味
xlSortNormal
0
数値と文字列別々
xlSortTextAsNumbers
1
文字列を数値とみなす

ActiveSheet.Sort.SortFields.Add2 Key:=Range("A1"), DataOption:=xlSortnormal  

 

Header ~タイトル行かどうか~

定数 数値 意味
xlYes
1
1行目はタイトル行
xlNo
2
1行目はタイトル行ではない

ActiveSheet.Sort.Header = xlNo

 

officetanaka.net