ExcelWork.info

Excel(エクセル)のマクロ・VBA・関数・操作などのメモ

ユーザー設定リストを使って並べ替える(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 メソッド)使用例

サンプルVBAソース1


実行結果

現在のユーザー設定リスト

ユーザー設定リスト

サンプルVBAソース1 実行前

Sort メソッド(ユーザー設定リスト)1

サンプルVBAソース1 実行後

Sort メソッド(ユーザー設定リスト)2



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 オブジェクト)使用例

サンプルVBAソース2


実行結果

サンプルVBAソース2 実行前

Sort オブジェクト(ユーザー設定リスト)1

サンプルVBAソース2 実行後

Sort オブジェクト(ユーザー設定リスト)2


 - VBA基本 , , , ,

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

  関連記事

色の設定(ColorIndex プロパティ・Colors プロパティ)

ColorIndex プロパティ ColorIndex プロパティは、指定したオ …

Dictionary オブジェクト 使用例1
連想配列(Dictionary オブジェクト)

連想配列 連想配列とは、添字(キー)に文字列を使用することができる配列です。 V …

Spc 関数 01
指定した数のスペースを挿入する(Spc 関数)

指定した数のスペースを挿入 指定した数のスペースを挿入するには、Spc 関数を使 …

Tab 関数 01
出力位置、書き込み位置を設定(Tab 関数)

出力位置、書き込み位置を設定 Tab 関数 は、Print メソッド、または P …

定数(改行・タブ) 使用例
文字列:定数(改行・タブ)

改行・タブの定数 これらの定数は、使用前に定義する必要はありません。コード中のど …

乱数(Rnd 関数)例1
乱数を生成する(Rnd 関数)

Rnd 関数の使い方 Rnd 関数は、0 以上、1 未満の範囲の乱数を単精度浮動 …

VBA の演算子(文字連結演算子:& 演算子 + 演算子)

文字連結演算子 文字連結演算子は、文字列の連結を行うときに使用する演算子で、「& …

VBAの変数宣言

VBAの変数宣言について 変数を暗黙的に宣言する エクセル VBA の場合、明示 …

文字列:アルファベットを小文字または大文字に変換(LCase 関数,UCase 関数)

LCase 関数・UCase 関数 の使い方 【書式】 <アルファベットの大文字 …

取り消し線を設定する(Strikethrough プロパティ)

取り消し線を設定する(Strikethrough プロパティ) Striketh …