並べ替え(Sort メソッド)
2015/08/26
Sort メソッド
任意のセル範囲内で、並べ替えを行います。引数で、並べ替えの条件を指定することができ、並べ替えのキーワードは最大3つまで指定することができます。
Excel 2007 以降のバージョンでは、Sort メソッド に加えて、 新しく Sort オブジェクト が、使用できるようになりました。セルの色やフォントの色で、並べ替えができるなど、機能が拡張されています。 ⇒ 並べ替え(Sort オブジェクト) を参照
object.Sort ( [ key1, order1, key2, type, order2, key3, order3, header, ordercustom, matchcase, orientation, sortmethod, dataoption1, dataoption2, dataoption3 ] )
引数・戻り値
- object ・・・ 対象となる Range オブジェクトを指定します。
- key1,key2,key3 ・・・ 並べ替えキーのフィールドを Range オブジェクト(セル)、または文字列で指定します。
- order1,order2,order3 ・・・ key1~3 で指定した値の並び替え順序を XlSortOrder 列挙型 で指定します。
定数 値 内容 xlAscending 1 昇順で並べ替え(既定値) xlDescending 2 降順で並べ替え - type ・・・ 並べ替える要素を指定します。ピボットテーブルの並べ替えの時に使用します。
- header ・・・ 先頭行を見出しとして使用するかどうかを指定します。XlYesNoGuess 列挙型
定数 値 内容 xlGuess 0 Excel が自動的に設定 xlYes 1 見出しとして使用 xlNo 2 見出しとして使用しない(範囲全体が並べ替えの対象)既定値 - ordercustom ・・・ ユーザー設定の並べ替え順のリスト内の番号を示す、1 から始まる整数を指定します。
- matchcase ・・・ 大文字と小文字を区別する場合は、True、しない場合は False を指定します。ピボットテーブルの並べ替えには使用できません。
- orientation ・・・ 並べ替えの方向を XlSortOrientation 列挙型 で指定。
定数 値 内容 xlSortColumns 1 行単位で並べ替え(上から下)既定値 xlSortRows 2 列単位で並べ替え(左から右) - sortmethod ・・・ 並べ替えの方法を XlSortMethod 列挙型 で指定します。
定数 値 内容 xlPinYin 1 ふりがなを使って並べ替え(既定値) xlStroke 2 ふりがなを使わずに並べ替え - DataOption1,DataOption2,DataOption3 ・・・ Key1~3 で指定した範囲でテキストを並べ替える方法を指定します。ピボットテーブルの並べ替えは使用できません。XlSortDataOption 列挙型
定数 値 内容 xlSortNormal 0 数値とテキストを別々に並べ替え(既定値) xlSortTextAsNumbers 1 テキストを数値データとして並べ替え
Sort メソッド 使用例
サンプルVBAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
Sub Sample01_Sort() Dim SortRng As Range Set SortRng = Range("B3").CurrentRegion 'ソートメソッドの実行 SortRng.Sort key1:="合計", _ order1:=xlDescending, _ key2:="登録番号", _ order2:=xlAscending, _ Header:=xlYes, _ MatchCase:=False, _ Orientation:=xlSortColumns, _ SortMethod:=xlStroke 'セルの背景色 Dim i As Long With SortRng For i = 2 To .Rows.Count If i Mod 2 = 0 Then .Rows(i).Interior.ColorIndex = 19 Else .Rows(i).Interior.ColorIndex = 2 End If Next i End With End Sub |
Sort メソッド 使用例 実行結果
サンプルVBAソース実行前
実行後
Sort メソッド(列単位の並べ替え) 使用例
サンプルVBAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
Sub Sample02_Sort() Dim SortRng As Range Set SortRng = Range("B3").CurrentRegion 'ユーザー設定の並べ替えリストを追加 Application.AddCustomList _ ListArray:=Array("登録番号", "氏名", "社会", "理科", "国語", "数学", "英語", "合計", "平均") 'ソートメソッドの実行(列単位の並べ替え) SortRng.Sort key1:=Range("B3"), _ order1:=xlAscending, _ Header:=xlNo, _ ordercustom:=Application.CustomListCount + 1, _ MatchCase:=False, _ Orientation:=xlSortRows, _ SortMethod:=xlStroke 'セルの背景色 Dim i As Long With SortRng For i = 2 To .Rows.Count If i Mod 2 = 0 Then .Rows(i).Interior.ColorIndex = 19 Else .Rows(i).Interior.ColorIndex = 2 End If Next i End With End Sub |
Sort メソッド(列単位の並べ替え)使用例 実行結果
サンプルVBAソース実行前
実行後
Sort メソッド(ピボットテーブル) 使用例
サンプルVBAソース
1 2 3 4 5 6 7 8 9 10 11 |
Sub Sample03_Sort() Dim myRng As Range Set myRng = ActiveSheet.PivotTables.Item(1).PivotFields("登録番号").DataRange myRng.Sort order1:=xlDescending, Type:=xlSortLabels End Sub |
Sort メソッド(ピボットテーブル)使用例 実行結果
サンプルVBAソース実行前
実行後
関連記事
-
-
セルをアクティブにする・セルを選択する(Activate, Select)
セルをアクティブにする・選択する 【書式:セルをアクティブにする】 object …
-
-
任意のセルを含む行または列全体を参照(EntireRow プロパティ,EntireColumn プロパティ)
EntireRow プロパティ・EntireColumn プロパティ Entir …
-
-
アクティブなセルを参照する(ActiveCell プロパティ)
ActiveCell プロパティ ActiveCell プロパティは、各ウィンド …
-
-
引数に指定したセル範囲の共通のセル範囲を取得(Intersect メソッド)
Intersect メソッド Intersect メソッドは、引数に指定したセル …
-
-
セル内の編集を禁止する(EditDirectlyInCell プロパティ)
EditDirectlyInCell プロパティ エクセルでは、セルをダブルクリ …
-
-
セルのロック(Locked プロパティ)
セルのロック(Locked プロパティ) Locked プロパティで、セルのロッ …
-
-
文字列の一部の書式を変更(Characters プロパティ)
文字列の一部を参照(Characters プロパティ) Characters プ …
-
-
入力規則(日本語入力)Validation オブジェクト,IMEMode プロパティ
IMEMode プロパティ Validation.IMEMode プロパティ を …
-
-
セル・セル範囲を切り取る(Cut メソッド)
Cut メソッド Cut メソッドは、指定したセル範囲を切り取り、引数に指定した …
-
-
セル・セル範囲に名前を定義・削除(Name プロパティ・Names コレクション)
セル・セル範囲に名前を定義(Name プロパティ) Range オブジェクトのN …