ユーザー設定リストを使って並べ替える(Sort)
VBAでリスト、テーブルを並べ替える(Sort)
VBAで、ソートを行うには、Sort メソッド(Excel 2003 以降)や Sort オブジェクト(Excel 2007 以降)を使用します。
組み込みのユーザー設定リストや独自に作成したユーザー設定リストを使ってソートを実行するには、Sort メソッド の場合は、引数 ordercustom に「ユーザー設定リスト」のダイアログボックスの上からの順番を数値で指定します。Sort オブジェクト の場合は、SortFields.Add メソッド で、引数 customorder に、ユーザー定義の並べ替えの順番をカンマ区切りの文字列で指定するか、「ユーザー設定リスト」のダイアログボックスの上からの順番を数値で指定します。
Sort メソッド の引数 ordercustom には、直接文字列を指定して、並べ替えの基準を設定することはできません。まず、ユーザー設定リストに登録する必要があります。
Sort メソッド に関しての詳細は 並べ替え(Sort メソッド)、Sort オブジェクト に関しての詳細は 並べ替え(Sort オブジェクト, SortFields コレクション) を参照してください。
Sort メソッド(Excel 2003 以降)
<「ユーザー設定リスト」を使用して並べ替え>
object1.Sort ([ key1, order1, header, ordercustom, matchcase, orientation, sortmethod, dataoption1 ] )
<「ユーザー設定リスト」に登録>
object2.AddCustomList( listarray )
引数・戻り値
- object1 ・・・ 対象となる Range オブジェクトを指定します。
- key1 ・・・ 並べ替えキーのフィールドを Range オブジェクト(セル)、または文字列で指定します。
- order1 ・・・ key1 で指定した値の並び替え順序を XlSortOrder 列挙型 で指定します。
xlAscending … 昇順で並べ替え(既定値)
xlDescending … 降順で並べ替え - header ・・・ 先頭行を見出しとして使用するかどうかを指定します。
xlGuess … Excel が自動的に設定
xlYes … 見出しとして使用
xlNo … 見出しとして使用しない(既定値) - ordercustom ・・・ ユーザー設定の並べ替え順のリスト内の番号を示す、1 から始まる整数を指定します。
- orientation ・・・ 並べ替えの方向を XlSortOrientation 列挙型 で指定。
xlSortColumns … 行単位で並べ替え(上から下)既定値
xlSortRows … 列単位で並べ替え(左から右) - sortmethod ・・・ 並べ替えの方法を XlSortMethod 列挙型 で指定します。
xlPinYin … ふりがなを使って並べ替え(既定値)
xlStroke … ふりがなを使わずに並べ替え - DataOption1 ・・・ Key1 で指定した範囲でテキストを並べ替える方法を指定します。
xlSortNormal … 数値とテキストを別々に並べ替え(既定値)
xlSortTextAsNumbers … テキストを数値データとして並べ替え - object2 ・・・ 対象となる Application オブジェクトを指定します。
- listarray ・・・ ユーザー設定リストに登録する文字列の配列を指定します。
(例)
Application.AddCustomList ListArray:= Array(“日”,”月”,”火”,”水”,”木”,”金”,”土”)
ユーザー設定リストを使って並べ替え(Sort メソッド)使用例
Sort オブジェクト(Excel 2007 以降)
<SortFields.Add メソッド>
object.SortFields( key [, sorton, order, customorder, dataoption ] )
引数・戻り値
- object ・・・ 対象となる Sort オブジェクトを指定します。
- key ・・・ 並べ替えのキー値をセル範囲(Range 型)で、 指定します。
- sorton ・・・ 並べ替えの対象を指定します。
xlSortOnCellColor … セルの色
xlSortOnFontColor … フォントの色
xlSortOnIcon … アイコン
xlSortOnValues … 値 - order ・・・ 並び替え順序を XlSortOrder 列挙型 で指定します。
xlAscending … 昇順で並べ替え(既定値)
xlDescending … 降順で並べ替え - customorder ・・・
ユーザー定義の並べ替えの順番をカンマ区切りの文字列(Variant)で指定するか、「ユーザー設定リスト」のダイアログボックスの上からの順番を数値で指定します。 - dataoption ・・・ テキストを並べ替える方法を指定します。
xlSortNormal … 数値とテキストを別々に並べ替え(既定値)
xlSortTextAsNumbers … テキストを数値データとして並べ替え
ユーザー設定リストを使って並べ替え(Sort オブジェクト)使用例
関連記事
-
-
Option Compare ステートメント
Option Compare ステートメントの使い方 【書式】 Option C …
-
-
式の値に応じて多分岐を行う(Switch 関数)
Switch 関数 の使い方 Switch 関数は、「式・値」を対にして指定して …
-
-
日付時刻:日付から曜日を取得( Weekday 関数、WeekdayName 関数 )
Weekday 関数(日付から曜日を表す数値を返す)の使い方 【書式】 week …
-
-
文字列:指定した文字コードに対応する文字を返す(Chr 関数)
Chr 関数の使い方 【書式】 result = Chr ( code ) 引数 …
-
-
セルのデータを区切り文字で複数のセルに分割する(TextToColumns メソッド)
TextToColumns メソッド TextToColumns メソッドを使用 …
-
-
文字列:文字列変数の値を右詰めまたは左詰めにする(RSet ステートメント・LSet ステートメント)
RSet ステートメント・LSet ステートメント 【書式】 < RSet ステ …
-
-
配列(多次元配列・配列の次元の変更)
多次元配列 【書式】 多次元配列の宣言 <静的配列(固定長配列)> Dim my …
-
-
配列(宣言・要素数の変更について)
配列の宣言 【書式】※ 配列の宣言 <Type 型の静的配列(固定長配列)の宣言 …
-
-
VBA の演算子(演算子の優先順位)
演算子の優先順位 演算子の優先順位とは、1つの式の中に演算子が複数ある場合、どの …
-
-
変数がNull 値かどうかをチェックする( IsNull 関数 )
IsNull 関数の使い方 【書式】 result = IsNull ( exp …