本記事はエクセル2019で動作確認を行っています。

具体的なコードを教えて。
本記事はこのような疑問にお答えします。
これからVBAを学ぶ方がスムーズに学習を進められる手助けをしていきます。

エクセルではデータの並び替え(ソート)を自由に行うことが可能です。
セルの値はもちろん、セルの色・フォントの色・条件付き書式でも並び替えを行うことができます。
エクセルでは「データ」タブ>「並び替え」で並び替えが行えます。
Sortメソッドの使い方(Excel2002/2003 )
(式)
オブジェクト.Sort(Key1,Order1, Key2,Order2, Key3,Order3,Header,OderCustom,MatchCase,Orientation,SortMethod,DataOption1, DataOption2, DataOption3)
ポイント
引数と定数は「:=(コロンとイコール)」でつなぎます。
内容 | 引数 | 定数 | ||||||
---|---|---|---|---|---|---|---|---|
列のセルを指定 | Key1~3 | セル範囲 | ||||||
指定列を昇順か降順か選択 | Order1~3 |
|
||||||
先頭行をタイトル行に指定するか | Header |
|
||||||
並び替えの順序を指定 | OrderCustom | 数値を指定 | ||||||
大文字と小文字を分けるか判断 | MatchCase |
|
||||||
並び替えの方向を指定 | Orientation |
|
||||||
ふりがなを使用するか | SortMethod |
|
||||||
文字列と数値を分けるか | DataOption1~3 |
|
Sortオブジェクトの使い方(Excel2007以降)
Sortオブジェクトを取得するには、Sortプロパティを使用します。
Sortオブジェクトの様々なメソッドをやプロパティを使用することで、希望の並び替えを行えます。
(式)
オブジェクト.Sort
ポイント
プロパティと定数は「:=(コロンとイコール)」でつなぎます。
代表的なメソッドとプロパティは
<メソッド>
内容 | メソッド |
---|---|
並べ替え実行 | Apply |
並べ替えを行うセル範囲を指定 | SetRange |
<プロパティ>
内容 | プロパティ | 定数 | ||||||
---|---|---|---|---|---|---|---|---|
先頭行をタイトル行に指定するか | Header |
|
||||||
大文字と小文字を分けるか判断 | MatchCase |
|
||||||
並び替えの方向を指定 | Orientation |
|
||||||
ふりがなを使用するか | SortMethod |
|
SortFieldsコレクションのAddメソッドを使用することで並び替えも行えます。
(式)
オブジェクト.Add Key,SortOn,Order,CustomOrder,DataOption
ポイント
引数と詳細は「:=(コロンとイコール)」でつなぎます。
内容 | 引数 | 詳細 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
並び替えの列のセル範囲を指定 | Key | |||||||||||
並び替えのキーを指定 | SortOn |
|
||||||||||
指定列を昇順か降順か選択 | Order |
|
||||||||||
ユーザー設定リストを使用する場合は、リストを指定 | CustomOrder | |||||||||||
並び替えの方法を指定 | DataOption |
|
練習問題
従業員名簿の表を入社日順に並び替えてみましょう。
Sub 並び替え() With ActiveSheet.Sort .SortFields.Clear ’すべてクリア .SortFields.Add Key:=Range("D3"), _ SortOn:=xlSortOnValues, Order:=xlAscending ’D3列を昇順 .SetRange Range("A3").CurrentRegion ’表を選択 .Header = xlYes ’先頭行を見出しに .Apply ’実行 End With End Sub
(実行結果)
まとめ
並び替えはオブジェクトやメソッドやプロパティの関係性で少し混乱するかもしれません。
基本的なつくりは
- SortFieldsオブジェクトをクリアする。
- 並べ替えをしたい範囲で昇順・降順を指定
- 複数設定したい場合は、2を繰り返す。
- 並び替えの範囲を設定する。
- 実行する。
となります。
最後まで目を通していただきありがとうございます。