SPREAD for WPF 4.0J - GcSpreadSheet
コーディングによるソート
MESCIUS SPREAD for WPF 4.0J - GcSpreadSheet > 開発者ガイド > ソート > コーディングによるソート

GcSpreadSheet では、ユーザー操作だけでなく、プログラムからリストの表示順序を変更できます。並べ替えを実行するには、ISort インターフェースのプロパティを設定し、並べ替える列を指定するためにソートフィールドを追加してから、並べ替え操作を実行します。並べ替えに利用できる設定は次のとおりです。

プロパティ 説明
Header 並べ替え範囲の最初の行がヘッダーかどうかを示します。Yes に設定すると、最初の行はヘッダーとして扱われ、並べ替えから除外されます。No に設定すると、最初の行は通常のデータとして並べ替えられます。
MatchCase 並べ替え時に大文字と小文字を区別するかどうかを指定します。true に設定すると、大文字と小文字が区別されます。false に設定すると、大文字と小文字は区別されず、ケースインセンシティブの並べ替えになります。
Orientation 行単位または列単位のいずれで並べ替えを行うかを指定します。
Rng 並べ替え対象のデータ範囲を取得または設定します。並べ替え範囲がテーブル内にある場合、このプロパティは変更できません。
SortFields ソートフィールドのコレクションを取得します。
SortMethod 中国語の並べ替え方法を指定します。たとえば、ピンイン順または筆画順が利用できます。
 サンプルコード
コードのコピー
// 名前リストのセル値を設定します。 
spreadSheet1.Workbook.ActiveSheet.Cells[0, 0].Value = "Name";
spreadSheet1.Workbook.ActiveSheet.Cells[1, 0].Value = "Bill";
spreadSheet1.Workbook.ActiveSheet.Cells[2, 0].Value = "Rod";
spreadSheet1.Workbook.ActiveSheet.Cells[3, 0].Value = "John";
spreadSheet1.Workbook.ActiveSheet.Cells[4, 0].Value = "Paddy";
spreadSheet1.Workbook.ActiveSheet.Cells[5, 0].Value = "Kelly";
spreadSheet1.Workbook.ActiveSheet.Cells[6, 0].Value = "William";
spreadSheet1.Workbook.ActiveSheet.Cells[7, 0].Value = "Janet"; 
spreadSheet1.Workbook.ActiveSheet.Cells[8, 0].Value = "Florence";
spreadSheet1.Workbook.ActiveSheet.Cells[9, 0].Value = "Albert";
spreadSheet1.Workbook.ActiveSheet.Cells[10, 0].Value = "Mary";

// リストが未整列であることをユーザーに通知するメッセージボックスを表示します。
MessageBox.Show("The list is out of order. Hit Ok to continue...", "Information");

ISort sort = spreadSheet1.Workbook.ActiveSheet.Sort;

// ソート範囲を設定します。
sort.SetRange("A1:A11");

// 以前のソートフィールド(存在する場合)をクリアします。
sort.SortFields.Clear();

// 新しいソートフィールドを追加します。
sort.SortFields.Add(0, SortOn.Value, SortOrder.Ascending);

// 最初の行はヘッダーです。
sort.Header = YesNoGuess.Yes;  
        
// ソート時に大文字と小文字を区別しません。
sort.MatchCase = false;    
        
// 行単位でソートします。
sort.Orientation = SortOrientation.Rows; 

// ピンイン(中国語の発音順)でソートする方法を使用します。
sort.SortMethod = SortMethod.PinYin; 

// ソートを適用します。
sort.Apply();                             
コードのコピー
' 名前リストのセル値を設定します。
spreadSheet1.Workbook.ActiveSheet.Cells(0, 0).Value = "Name"
spreadSheet1.Workbook.ActiveSheet.Cells(1, 0).Value = "Bill"
spreadSheet1.Workbook.ActiveSheet.Cells(2, 0).Value = "Rod"
spreadSheet1.Workbook.ActiveSheet.Cells(3, 0).Value = "John"
spreadSheet1.Workbook.ActiveSheet.Cells(4, 0).Value = "Paddy"
spreadSheet1.Workbook.ActiveSheet.Cells(5, 0).Value = "Kelly"
spreadSheet1.Workbook.ActiveSheet.Cells(6, 0).Value = "William"
spreadSheet1.Workbook.ActiveSheet.Cells(7, 0).Value = "Janet"
spreadSheet1.Workbook.ActiveSheet.Cells(8, 0).Value = "Florence"
spreadSheet1.Workbook.ActiveSheet.Cells(9, 0).Value = "Albert"
spreadSheet1.Workbook.ActiveSheet.Cells(10, 0).Value = "Mary"

' リストが未整列であることをユーザーに通知するメッセージボックスを表示します。
MessageBox.Show("The list is out of order. Hit Ok to continue...", "Information")

Dim sort As ISort = spreadSheet1.Workbook.ActiveSheet.Sort

' ソート範囲を設定します。
sort.SetRange("A1:A11")

' 以前のソートフィールド(存在する場合)をクリアします。
sort.SortFields.Clear()

' 新しいソートフィールドを追加します。
sort.SortFields.Add(0, SortOn.Value, SortOrder.Ascending)

' 最初の行はヘッダーです。
sort.Header = YesNoGuess.Yes

' ソート時に大文字と小文字を区別しません。
sort.MatchCase = False

' 行単位でソートします。
sort.Orientation = SortOrientation.Rows

' ピンイン(中国語の発音順)でソートする方法を使用します。
sort.SortMethod = SortMethod.PinYin

' ソートを適用します。
sort.Apply()