MESCIUS SPREAD for Windows Forms 17.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"

 

参照

 

 


© MESCIUS inc. All rights reserved.