ActiveSheet.Range("B2:G100").Sort Key1:=Range("C1") _
, Order1:=xlAscending _
, Header:=xlGuess _
, MatchCase:=False _
, Orientation:=xlTopToBottom _
, SortMethod:=xlPinYin
- Key1 (省略可能)
並べ替える列
- Order1 (省略可能)
xlAscending 昇順
xlDescending 降順
- Header (省略可能)
xlGuess 先頭行をタイトル行か自動判定
xlNo 先頭行をタイトル行と見なさない
xlYes 先頭行をタイトル行と見なす
- MatchCase (省略可能)
True 大文字・小文字を区別する
False 大文字・小文字を区別しない
- Orientation (省略可能)
xlTopToBottom 行の並べ替え
xlLeftToRight 列の並べ替え
- SortMethod (省略可能)
日本語が含まれていたときの並べ替え順序
xlPinYin 音読み順
xlStroke 画数順
データのソート(並べ替え)を行うVBA
Excel VBA 標準モジュールコード
B2:G100の範囲を、D列をキーに並べ替えを行います。
Sub MySort()
ActiveSheet.Range("B2:G100").Sort Key1:=Range("D1") _
, Order1:=xlAscending _
, Header:=xlGuess _
, MatchCase:=False _
, Orientation:=xlTopToBottom _
, SortMethod:=xlPinYin
End Sub
VBEの画面
MyySortプロシージャを作成しました。
実行前のシートです。
実行結果のシートです。
C列の「人口総数」が昇順で並べ替えられています。
■複数指定する場合
最優先されるキーがC列、次に優先されるキーがD列 、次に優先されるキーがE列に設定しています。
ActiveSheet.Range("B10:G100").Sort _
Key1:=Range("C1"), Order1:=xlAscending _
, Key2:=Range("D1"), Order2:=xlDescending _
, Key3:=Range("E1"), Order3:=xlAscending _
, Header:=xlGuess _
, MatchCase:=False _
, Orientation:=xlTopToBottom _
, SortMethod:=xlPinYin