MESCIUS SPREAD for Windows Forms 17.0J
フィルタバーフィルタリング

フィルタバーフィルタリングを有効にすると、下図のように、列ヘッダの下にフィルタバーが表示され、ユーザーがフィルタ条件を入力できるようになります。ユーザーが条件を入力すると、フィルタリングが実行されます。

フィルタバーフィルタリングを有効にするには、SheetViewクラスのAutoFilterModeプロパティにAutoFilterMode列挙体のFilterBarを設定します。

フィルタバーのセルに関する設定を変更するには、フィルタバーのセル型を表すFilterBarCellTypeクラスのプロパティを使用します。FilterBarクラスのCellsプロパティを使用して対象の列のセルを参照し、CellTypeプロパティにFilterBarCellTypeオブジェクトを設定します。

FilterBarCellTypeクラスのContextMenuTypeプロパティを設定することで、セルのデータに応じたフィルタリングが可能になります。ContextMenuTypeプロパティには、FilterBarContextMenuType列挙体の値を設定します。設定できる値は次のとおりです。Color以外は、セルのデータに応じて適切なContextMenuType プロパティを設定する必要があります。たとえば、セルのデータが数値にも関わらずContextMenuTypeプロパティにTextが設定されている場合、条件を入力しても意図したとおりにフィルタリングが動作しない可能性があります。

FilterBarContextMenuType列挙体の値 説明
Text セル内のデータが文字列の場合に使用します。
Number セル内のデータが数値の場合に使用します。
DateTime セル内のデータが日付の場合に使用します。
Color 背景色、文字色、アイコンのいずれかでフィルタする場合に使用します。
  • ContextMenuTypeプロパティの設定で表示されるコンテキストメニューの内容をカスタマイズすることはできません。
  • 「ユーザー設定」ダイアログをカスタマイズすることはできません。
  • フィルタバーで「フィルタなし」以外の状態をコードで設定することはできません(デフォルト値含む)。

サンプルコード

次のサンプルコードは、先頭の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
参照

 

 


© MESCIUS inc. All rights reserved.