PowerTools SPREAD for Windows Forms 10.0J > 開発者ガイド > データ操作 > フィルタリング > フィルタバーフィルタリング |
フィルタバーフィルタリングを有効にすると、下図のように、列ヘッダの下にフィルタバーが表示され、ユーザーがフィルタ条件を入力できるようになります。ユーザーが条件を入力すると、フィルタリングが実行されます。
フィルタバーフィルタリングを有効にするには、SheetViewクラスのAutoFilterModeプロパティにAutoFilterMode列挙体のFilterBarを設定します。
フィルタバーのセルに関する設定を変更するには、フィルタバーのセル型を表すFilterBarCellTypeクラスのプロパティを使用します。FilterBarクラスのCellsプロパティを使用して対象の列のセルを参照し、CellTypeプロパティにFilterBarCellTypeオブジェクトを設定します。
FilterBarCellTypeクラスのContextMenuTypeプロパティを設定することで、セルのデータに応じたフィルタリングが可能になります。ContextMenuTypeプロパティには、FilterBarContextMenuType列挙体の値を設定します。設定できる値は次のとおりです。Color以外は、セルのデータに応じて適切なContextMenuType プロパティを設定する必要があります。たとえば、セルのデータが数値にも関わらずContextMenuTypeプロパティにTextが設定されている場合、条件を入力しても意図したとおりにフィルタリングが動作しない可能性があります。
FilterBarContextMenuType列挙体の値 | 説明 |
---|---|
Text | セル内のデータが文字列の場合に使用します。 |
Number | セル内のデータが数値の場合に使用します。 |
DateTime | セル内のデータが日付の場合に使用します。 |
Color | 背景色、文字色、アイコンのいずれかでフィルタする場合に使用します。 |
|
次のサンプルコードは、先頭の4列に、FilterBarCellTypeクラスを使用してContextMenuTypeプロパティを設定します。
C# |
コードのコピー
|
---|---|
FarPoint.Win.Spread.SheetView sheetView = fpSpread1.ActiveSheet; sheetView.AutoFilterMode = FarPoint.Win.Spread.AutoFilterMode.FilterBar; // 数値をフィルタする場合 FarPoint.Win.Spread.CellType.FilterBarCellType fbnum = new FarPoint.Win.Spread.CellType.FilterBarCellType(); fbnum.ContextMenuType = FarPoint.Win.Spread.CellType.FilterBarContextMenuType.Number; sheetView.FilterBar.Cells[0].CellType = fbnum; // 文字列をフィルタする場合 FarPoint.Win.Spread.CellType.FilterBarCellType fbtxt = new FarPoint.Win.Spread.CellType.FilterBarCellType(); fbtxt.ContextMenuType = FarPoint.Win.Spread.CellType.FilterBarContextMenuType.Text; sheetView.FilterBar.Cells[1].CellType = fbtxt; // 日付をフィルタする場合 FarPoint.Win.Spread.CellType.FilterBarCellType fbdt = new FarPoint.Win.Spread.CellType.FilterBarCellType(); fbdt.ContextMenuType = FarPoint.Win.Spread.CellType.FilterBarContextMenuType.DateTime; sheetView.FilterBar.Cells[2].CellType = fbdt; // 色でフィルタする場合 FarPoint.Win.Spread.CellType.FilterBarCellType fbcol = new FarPoint.Win.Spread.CellType.FilterBarCellType(); fbcol.ContextMenuType = FarPoint.Win.Spread.CellType.FilterBarContextMenuType.Color; sheetView.FilterBar.Cells[3].CellType = fbcol; |
Visual Basic |
コードのコピー
|
---|---|
Dim sheetView As FarPoint.Win.Spread.SheetView = FpSpread1.ActiveSheet sheetView.AutoFilterMode = FarPoint.Win.Spread.AutoFilterMode.FilterBar ' 数値をフィルタする場合 Dim fbnum As New FarPoint.Win.Spread.CellType.FilterBarCellType() fbnum.ContextMenuType = FarPoint.Win.Spread.CellType.FilterBarContextMenuType.Number sheetView.FilterBar.Cells(0).CellType = fbnum ' 文字列をフィルタする場合 Dim fbtxt As New FarPoint.Win.Spread.CellType.FilterBarCellType() fbtxt.ContextMenuType = FarPoint.Win.Spread.CellType.FilterBarContextMenuType.Text sheetView.FilterBar.Cells(1).CellType = fbtxt ' 日付をフィルタする場合 Dim fbdt As New FarPoint.Win.Spread.CellType.FilterBarCellType() fbdt.ContextMenuType = FarPoint.Win.Spread.CellType.FilterBarContextMenuType.DateTime sheetView.FilterBar.Cells(2).CellType = fbdt ' 色でフィルタする場合 Dim fbcol As New FarPoint.Win.Spread.CellType.FilterBarCellType() fbcol.ContextMenuType = FarPoint.Win.Spread.CellType.FilterBarContextMenuType.Color sheetView.FilterBar.Cells(3).CellType = fbcol |