並べ替え(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ソース実行前
実行後
関連記事
-
セルに値を設定する・セルの値を参照する(Value プロパティ)
Value プロパティ Value プロパティは、セルの値を取得したり、値を設定 …
-
セルを参照する(Range プロパティ)
Range プロパティ 任意のセルにアクセスするには Range プロパティを使 …
-
書式で検索(Find メソッド,FindFormat プロパティ)
書式で検索 書式を条件にセルを検索する場合、まず、その書式条件を CellFor …
-
セルを挿入する(Insert メソッド)
Insert メソッド Insert メソッドで、指定した場所に新規の空白セルを …
-
文字列を縮小して全体を表示(ShrinkToFit プロパティ)
ShrinkToFit プロパティ ShrinkToFit プロパティは、セルに …
-
入力規則(入力時メッセージの設定)Validation オブジェクト
入力規則の入力時メッセージを表示する Validation.ShowInput …
-
罫線の設定(Borders プロパティ)
罫線の設定 罫線を一括(上下左右すべて)で設定するには、Borders プロパテ …
-
オートフィルタの状況を確認(AutoFilterMode, FilterMode)
AutoFilterMode プロパティ AutoFilterMode プロパテ …
-
セル・セル範囲に名前を定義・削除(Name プロパティ・Names コレクション)
セル・セル範囲に名前を定義(Name プロパティ) Range オブジェクトのN …
-
フリガナの取得(GetPhonetic メソッド)
GetPhonetic メソッド GetPhonetic メソッドは、指定した文 …