PowerTools SPREAD for Windows Forms 10.0J > 開発者ガイド > データ操作 > フィルタリング > 通常フィルタリング > フィルタ項目リスト > フィルタ基準の定義 |
対象の列に含まれるセルの値により、シートの行をフィルタリングできます。フィルタリングは、次の手順で設定します。
フィルタ基準は、対象の列の値で行をフィルタリングするために使用されます。フィルタ基準はフィルタの列定義と呼ばれ、FilterColumnDefinitionクラスを使用して対象の列ごとに定義します。複数の列にフィルタリングを設定する場合、フィルタの列定義のコレクションを表すFilterColumnDefinitionCollectionクラスを使用することもできます。
フィルタリングの外観には、非表示フィルタ、またはスタイル行フィルタのいずれかを使用できます。詳しくは「フィルタリングの外観」を参照してください。
ドロップダウンリストに表示される、フィルタ項目の次のテキストをカスタマイズできます。非表示フィルタを表すHideRowFilter、およびスタイル行フィルタを表すStyleRowFilterクラスが継承するDefaultRowFilterクラスのプロパティを使用して設定します。
フィルタ項目の既定の表示テキスト | 説明 |
---|---|
(All) | セルの値に関わらず、すべての行を含めます。AllStringプロパティで表示するテキストを設定できます。 |
(Blanks) | 対象の列が空白値(空白セル)の行を含めます。BlanksStringプロパティで表示するテキストを設定できます。 |
(NonBlanks) | 対象の列が空白値以外(何らかの値をもつセル)の行を含めます。NonBlanksStringプロパティで表示するテキストを設定できます。 |
次のサンプルコードは、2列目、3列目、および4列目にスタイル行フィルタを設定します。フィルタの列定義を、FilterColumnDefinitionCollectionクラスを使用してコレクションに保存します。
C# |
コードのコピー
|
---|---|
// 行フィルタおよび列定義を宣言します。 FarPoint.Win.Spread.FilterColumnDefinitionCollection fcdc = new FarPoint.Win.Spread.FilterColumnDefinitionCollection(); FarPoint.Win.Spread.FilterColumnDefinition fcd1 = new FarPoint.Win.Spread.FilterColumnDefinition(2); FarPoint.Win.Spread.FilterColumnDefinition fcd2 = new FarPoint.Win.Spread.FilterColumnDefinition(3); FarPoint.Win.Spread.FilterColumnDefinition fcd3 = new FarPoint.Win.Spread.FilterColumnDefinition(1); // フィルタ列の定義をコレクションに追加します。 fcdc.Add(fcd1); fcdc.Add(fcd2); fcdc.Add(fcd3); FarPoint.Win.Spread.NamedStyle inStyle = new FarPoint.Win.Spread.NamedStyle(); FarPoint.Win.Spread.NamedStyle outStyle = new FarPoint.Win.Spread.NamedStyle(); inStyle.BackColor = Color.Yellow; outStyle.BackColor = Color.Aquamarine; // スタイルおよびフィルタ列の定義を行フィルタに適用します。 FarPoint.Win.Spread.StyleRowFilter rowFilter = new FarPoint.Win.Spread.StyleRowFilter(fpSpread1.ActiveSheet, inStyle, outStyle); // 列定義をフィルタに適用します。 foreach (FarPoint.Win.Spread.FilterColumnDefinition x in fcdc) { rowFilter.AddColumn(x); } fpSpread1.ActiveSheet.RowFilter = rowFilter; |
Visual Basic |
コードのコピー
|
---|---|
' 行フィルタおよび列定義を宣言します。 Dim fcdc As New FarPoint.Win.Spread.FilterColumnDefinitionCollection() Dim fcd1 As New FarPoint.Win.Spread.FilterColumnDefinition(2) Dim fcd2 As New FarPoint.Win.Spread.FilterColumnDefinition(3) Dim fcd3 As New FarPoint.Win.Spread.FilterColumnDefinition(1) ' フィルタ列の定義をコレクションに追加します。 fcdc.Add(fcd1) fcdc.Add(fcd2) fcdc.Add(fcd3) Dim inStyle As New FarPoint.Win.Spread.NamedStyle() Dim outStyle As New FarPoint.Win.Spread.NamedStyle() inStyle.BackColor = Color.Yellow outStyle.BackColor = Color.Aquamarine ' スタイルおよびフィルタ列の定義を行フィルタに適用します。 Dim rowFilter As New FarPoint.Win.Spread.StyleRowFilter(FpSpread1.ActiveSheet, inStyle, outStyle) ' 列定義をフィルタに適用します。 For Each x As FarPoint.Win.Spread.FilterColumnDefinition In fcdc rowFilter.AddColumn(x) Next ' 行フィルタをシートに適用します。 FpSpread1.ActiveSheet.RowFilter = rowFilter |
次のサンプルコードは、2列目、および3列目に非表示フィルタを設定します。フィルタの列定義のコレクション(FilterColumnDefinitionCollectionオブジェクト)は使用していません。
C# |
コードのコピー
|
---|---|
// フィルタアウト行が非表示にされるように設定します。 FarPoint.Win.Spread.HideRowFilter hideRowFilter = new FarPoint.Win.Spread.HideRowFilter(fpSpread1.ActiveSheet); hideRowFilter.AddColumn(1); hideRowFilter.AddColumn(2); fpSpread1.ActiveSheet.RowFilter = hideRowFilter; // セルにテストデータを入力します。 fpSpread1.ActiveSheet.Cells[0,1].Value = "aaa"; fpSpread1.ActiveSheet.Cells[1,1].Value = "aaa"; fpSpread1.ActiveSheet.Cells[2,1].Value = "bbb"; fpSpread1.ActiveSheet.Cells[3,1].Value = "ccc"; fpSpread1.ActiveSheet.Cells[4,1].Value = "ddd"; fpSpread1.ActiveSheet.Cells[5,1].Value = "bbb"; fpSpread1.ActiveSheet.Cells[6,1].Value = "aaa"; fpSpread1.ActiveSheet.Cells[7,1].Value = "eee"; fpSpread1.ActiveSheet.Cells[8,1].Value = "jjj"; fpSpread1.ActiveSheet.Cells[9,1].Value = "jjj"; fpSpread1.ActiveSheet.Cells[10,1].Value = "fff"; fpSpread1.ActiveSheet.Cells[11,1].Value = "fff"; fpSpread1.ActiveSheet.Cells[12,1].Value = "eee"; fpSpread1.ActiveSheet.Cells[13,1].Value = "jjj"; fpSpread1.ActiveSheet.Cells[14,1].Value = "eee"; fpSpread1.ActiveSheet.Cells[15,1].Value = "jjj"; fpSpread1.ActiveSheet.Cells[16,1].Value = "fff"; fpSpread1.ActiveSheet.Cells[0,2].Value = "111"; fpSpread1.ActiveSheet.Cells[1,2].Value = "222"; fpSpread1.ActiveSheet.Cells[2,2].Value = "333"; fpSpread1.ActiveSheet.Cells[3,2].Value = "222"; fpSpread1.ActiveSheet.Cells[4,2].Value = "555"; fpSpread1.ActiveSheet.Cells[5,2].Value = "444"; fpSpread1.ActiveSheet.Cells[6,2].Value = "444"; fpSpread1.ActiveSheet.Cells[0,3].Value = "North"; fpSpread1.ActiveSheet.Cells[1,3].Value = "South"; fpSpread1.ActiveSheet.Cells[2,3].Value = "East"; fpSpread1.ActiveSheet.Cells[3,3].Value = "South"; fpSpread1.ActiveSheet.Cells[4,3].Value = "North"; fpSpread1.ActiveSheet.Cells[5,3].Value = "North"; fpSpread1.ActiveSheet.Cells[6,3].Value = "West"; |
Visual Basic |
コードのコピー
|
---|---|
' フィルタアウト行が非表示にされるように設定します。 Dim hRowFilter As New FarPoint.Win.Spread.HideRowFilter(FpSpread1.ActiveSheet) hRowFilter.AddColumn(1) hRowFilter.AddColumn(2) FpSpread1.ActiveSheet.RowFilter = hRowFilter ' セルにテストデータを入力します。 FpSpread1.ActiveSheet.Cells(0, 1).Value = "aaa" FpSpread1.ActiveSheet.Cells(1, 1).Value = "aaa" FpSpread1.ActiveSheet.Cells(2, 1).Value = "bbb" FpSpread1.ActiveSheet.Cells(3, 1).Value = "ccc" FpSpread1.ActiveSheet.Cells(4, 1).Value = "ddd" FpSpread1.ActiveSheet.Cells(5, 1).Value = "bbb" FpSpread1.ActiveSheet.Cells(6, 1).Value = "aaa" FpSpread1.ActiveSheet.Cells(7, 1).Value = "eee" FpSpread1.ActiveSheet.Cells(8, 1).Value = "jjj" FpSpread1.ActiveSheet.Cells(9, 1).Value = "jjj" FpSpread1.ActiveSheet.Cells(10, 1).Value = "fff" FpSpread1.ActiveSheet.Cells(11, 1).Value = "fff" FpSpread1.ActiveSheet.Cells(12, 1).Value = "eee" FpSpread1.ActiveSheet.Cells(13, 1).Value = "jjj" FpSpread1.ActiveSheet.Cells(14, 1).Value = "eee" FpSpread1.ActiveSheet.Cells(15, 1).Value = "jjj" FpSpread1.ActiveSheet.Cells(16, 1).Value = "fff" FpSpread1.ActiveSheet.Cells(0, 2).Value = "111" FpSpread1.ActiveSheet.Cells(1, 2).Value = "222" FpSpread1.ActiveSheet.Cells(2, 2).Value = "333" FpSpread1.ActiveSheet.Cells(3, 2).Value = "222" FpSpread1.ActiveSheet.Cells(4, 2).Value = "555" FpSpread1.ActiveSheet.Cells(5, 2).Value = "444" FpSpread1.ActiveSheet.Cells(6, 2).Value = "444" FpSpread1.ActiveSheet.Cells(0, 3).Value = "North" FpSpread1.ActiveSheet.Cells(1, 3).Value = "South" FpSpread1.ActiveSheet.Cells(2, 3).Value = "East" FpSpread1.ActiveSheet.Cells(3, 3).Value = "South" FpSpread1.ActiveSheet.Cells(4, 3).Value = "North" FpSpread1.ActiveSheet.Cells(5, 3).Value = "North" FpSpread1.ActiveSheet.Cells(6, 3).Value = "West" |