VBAで指定セル範囲のデータを並べ替え(Sort)

Sortメソッド

指定セル範囲のデータを並べ替えるには、その指定セル範囲を表すRangeオブジェクトのSortメソッドを利用します。

並び替えを行う列を最大3列まで指定できます。

構文

親オブジェクト 並べ替えを行うセル範囲をRangeオブジェクトで指定します。

単一セルの指定も可能です。

単一セルを指定した場合はその単一セルを含む入力されているセルの範囲が対象になります。

Key1
(省略可)
一番優先して並べ替える列をRangeオブジェクトで指定します。
Order1
(省略可)
引数Key1で指定した列の並び順をXlSortOrder列挙型で指定します。

XlSortOrder列挙型

定数 内容
xlAscending 1 昇順(既定値)
xlDescending 2 降順
Key2
(省略可)
2番目に優先して並べ替える列をRangeオブジェクトで指定します。
Type
(省略可)
ピボットテーブルレポートの並び替えを行う場合にのみ使用します。

XlSortType列挙型を指定します。

XlSortType列挙型

定数 内容
xlSortValues 1 値で並べ替え
xlSortLabels 2 ラベルで並べ替え
Order2
(省略可)
引数Key2で指定した列の並び順をXlSortOrder列挙型で指定します。

XlSortOrder列挙型

定数 内容
xlAscending 1 昇順(既定値)
xlDescending 2 降順
Key3
(省略可)
3番目に優先して並べ替える列をRangeオブジェクトで指定します。
Order3
(省略可)
引数Key3で指定した列の並び順をXlSortOrder列挙型で指定します。

XlSortOrder列挙型

定数 内容
xlAscending 1 昇順(既定値)
xlDescending 2 降順
Header
(省略可)
1行目を見出しとするかをXlYesNoGuess列挙型で指定します。

XlYesNoGuess列挙型

定数 内容
xlGuess 0 Excelに判断させる
xlYes 1 1行目を見出しとする
xlNo 2 既定値。1行目を見出しとしない
OrderCustom
(省略可)
ユーザー設定リストの順番を数値で指定します。
MatchCase
(省略可)
大文字と小文字を区別するかを指定します。

Trueは区別し、Falseは区別しません。

Orientation
(省略可)
並べ替えが行単位か列単位のどちらで行うかをXlSortOrientation列挙型で指定します。

XlSortOrientation列挙型

定数 内容
xlSortColumns 1 列単位
xlSortRows 2 行単位(既定値)
SortMethod
(省略可)
並べ替えがふりがな順か文字の画数順のどちらで行うかをXlSortMethod列挙型で指定します。

既定値のふりがな順を指定した場合にふりがな情報を持っていない場合は音読み順に並べ替えられます。

XlSortMethod列挙型

定数 内容
xlPinYin 1 ふりがな順(既定値)
xlStroke 2 各文字の画数
DataOption1
(省略可)
Key1で指定した列範囲の並べ替えがテキストと数値を同じに扱うか別に扱うかをXlSortDataOption列挙型で指定します。

XlSortDataOption列挙型

定数 内容
xlSortNormal 0 テキストを数値データとして並べ替える(既定値)
xlSortTextAsNumbers 1 テキストと数値データを個別に並べ替える
DataOption2
(省略可)
Key2 〃
DataOption3
(省略可)
Key3 〃
戻り値 並べ替えが正常に行われた場合はTrueが返ります。

エラーが発生した場合は何も返されずFalseにはなりません。

注意点

以下の引数はSortメソッドを実行する度にExcelの情報として保存されます。

  • Header
  • Order1
  • Order2
  • Order3
  • Orientation

これらの引数を省略した場合は、前回の設定値が有効になります。

前回のSortの結果に影響されたくない場合は引数は省略せずに実行するようにしてください。

実行時エラー

指定セル範囲にデータがない場合は実行時エラー1004が発生します。

このエラーが出た場合はSortメソッドの親オブジェクトとして指定したセル範囲に値が設定されていないことが考えられます。

エラーになるかどうか分からない場合はOn Error Resume Nextなどでエラー対策を行う必要があります。

サンプルコード

Sortメソッドのサンプルです。

A1セルを基準とするデータに対して、B2セル以降で昇順の並べ替えを行うようにしています。

実行前

実行後

B2セル以降で並べ替えが行われています。

関連記事

サブコンテンツ

このページの先頭へ