Excel 2007からは、新しくSortオブジェクトが新設された。
以前は、並べ替えのキーが3つまでしか指定できなかったが、最大64個の指定ができるようになった。
でも、以前のRange.Sortメソッドも使える。
sub 並べ替えSample()
Dim ws As Worksheet
Set ws = Worksheets("データ")
With ws.Sort.SortFields
.Clear ’(1) 前回のソート情報をクリア
.Add Key:=Range("C2"), Order:=xlAscending '(2)並べ替えのキーを追加
.Add Key:=Range("H2"), Order:=xlAscending
.Add Key:=Range("G2"), Order:=xlAscending
.Add Key:=Range("D2"), Order:=xlAscending
End With
With ws.Sort '対象となるWorkSheetオブジェクトを指定
.SetRange Range("A1:I1000") '(3) 並べ替えの範囲を指定
.Header = xlYes '(4) 行ヘッダーの有無を指定
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply '(5) 並べ替え実行
End With
End Sub
Sort オブジェクト
メソッド
Apply | 現在適用されている並べ替え状態に基づいて範囲を並べ替え |
SetRange | 並べ替えが行われる範囲を設定 |
プロパティ
Application | ・オブジェクト修飾子なしの場合、Excelアプリケーションを表すApplicationオブジェクトを返す ・オブジェクト修飾子を指定した場合、指定したオブジェクトを作成したApplicationオブジェクトを取得 ・値の取得のみ |
Creator | ・指定されたオブジェクトを作成したアプリケーションを32 ビットの整数値で返す ・取得のみ可能なLong値 |
Header | 最初の行にヘッダー情報が含まれるかどうかを指定 xlGuesss:0 見出しがあるかどうか、ある場合はその場所を Excel が特定 xlNo:2 既定値。 範囲全体が並べ替えの対象 xlYes:1 範囲全体が並べ替えられない |
MatchCase | True :大文字と小文字を区別 False :大文字と小文字を区別しない 値の取得と設定が可能 |
Orientation | 並べ替え方向を指定 xlSortColumns :1 列単位で並べ替える xlSortRows :2 行単位で並べ替える(既定値) |
Parent | ・指定されたオブジェクトの親オブジェクトを返す ・ 読み取り専用 |
Rng | ・並べ替えが行われる値の範囲を返す ・ 値の取得のみ |
SortFields | ・Sortオブジェクトに関連付けられている並べ替えフィールドのコレクションを表すSortFieldsオブジェクトを返す ・ 読み取り専用 |
SortMethod | ・漢字の並べ替え方法を指定 xlPinYin: 1 ふりがなを使用(既定値) xlStroke: 2 ふりがなを使用しない |
SortFields オブジェクト
メソッド
Add | 新しい並べ替えフィールドを作成し、SortFieldsオブジェクトを返す SortFields.Add ( key [, sorton, order, customorder, dataoption ] ) sorton:並べ替えの対象を指定 xlSortOnCellColor:1:セルの色 xlSortOnFontColor:2:フォントの色 xlSortOnIcon:3:アイコン xlSortOnValues:0:値 order:並び替え順序 xlAscending:1: 昇順で並べ替え(既定値) xlDescending:2 :降順で並べ替え customorder:ユーザー設定の並べ替え順序 カンマ区切りの文字列(Variant)で指定 dataoption:テキストを並べ替える方法を指定 xlSortNormal :0: 数値とテキストを別々に並べ替え(既定値) xlSortTextAsNumbers: 1: テキストを数値データとして並べ替え |
Add2 | 新しい並べ替えフィールドを作成し、必要に応じてSubFieldを定義してデータ型を並べ替えることができるSortFieldsオブジェクトを返す |
Clear | SortFieldsオブジェクトをクリア 並べ替えのキー設定を全てクリア |
プロパティ
Application | ・オブジェクト修飾子なしの場合、Excel アプリケーションを表すApplicationオブジェクトを返す ・オブジェクト修飾子を指定した場合、指定したオブジェクトを作成したApplicationオブジェクトを取得 ・ 値の取得のみ |
Count | ・コレクション内にあるオブジェクトの数を返す ・取得のみ可能なLong値 |
Creator | ・指定されたオブジェクトを作成したアプリケーションを32 ビットの整数値で返す ・ 取得のみ可能なLong値 |
Item | ・ブックで 並べ替えることができる項目のコレクションを表すSortFieldオブジェクトを返す ・ 読み取り専用 |
Parent | ・指定されたオブジェクトの親オブジェクトを返す ・読み取り専用 |
コメント