MESCIUS SPREAD for Windows Forms 17.0J > 開発者ガイド > データ操作 > フィルタリング > セル範囲のフィルタリングの管理 |
SPREAD for Windows Formsでは、ワークシートの特定のセル範囲にフィルタを適応することで、セル範囲のフィルタリング操作を簡単に管理できます。これにより、セル範囲内で特定のフィルタ条件に適合するレコードを簡単に、素早く特定し、表示することができるので、スプレッドシートに大量のデータが保持されている場合などに便利です。
注:LegacyBehaviorsプロパティがStyleを含まない場合にサポートされます。 |
セル範囲のフィルタリング管理では、以下の作業を行います。
IRangeインタフェースのAutoFilterメソッドを使用して、セル範囲にフィルタを適用できます。セル範囲にフィルタが適用されていない場合は、AutoFilterメソッドを呼び出すと、空のフィルタが新規作成されます。ただし、すでにフィルタが適用されている場合にAutoFilterメソッドを呼び出すと、対象となるセル範囲で既存のフィルタが削除されます。
ワークシート内のセル範囲にフィルタを適用すると、フィルタを適用するセル範囲の、最上行を構成する各セルの右側に、ドロップダウン矢印のインジケータが表示されます。インジケータをクリックすると、この列内に含まれるすべての一意の値を保持するドロップダウンリストが開きます。リストから必要なフィルタオプションを選択して、データを並べ替えることができます。
セル範囲にフィルタを適用するには、IRangeインタフェースのAutoFilterメソッドを使用します。
次のサンプルコードは、スプレッドシートの特定のセル範囲にフィルタを適用します。
C# |
コードのコピー
|
---|---|
// AutoFilterメソッドを使用して、セル範囲B2:C5にフィルタを適用します。 fpSpread1.AsWorkbook().ActiveSheet.Cells["B2:C5"].AutoFilter(); // カスタムフィルタ条件によるフィルタをセル範囲に適用します。 // セル範囲B2:E10にフィルタを作成し、AboveAverageフィルタ条件によって列Cをフィルタします。 fpSpread1.AsWorkbook().ActiveSheet.Cells["B2:E10"].AutoFilter(1, GrapeCity.Spreadsheet.DynamicFilterType.AboveAverage); |
VB |
コードのコピー
|
---|---|
' AutoFilterメソッドを使用して、セル範囲B2:C5にフィルタを適用します。 FpSpread1.AsWorkbook().ActiveSheet.Cells("B2:C5").AutoFilter() ' カスタムフィルタ条件によるフィルタをセル範囲に適用します。 ' セル範囲B2:E10にフィルタを作成し、AboveAverageフィルタ条件によって列Cをフィルタします。 FpSpread1.AsWorkbook().ActiveSheet.Cells("B2:C10").AutoFilter(1, GrapeCity.Spreadsheet.DynamicFilterType.AboveAverage) |
ワークシートのセル範囲フィルタを処理する場合、現在のフィルタ設定、および既存のテーブルフィルタ設定にアクセスできます。アクセス可能な設定情報には、フィルタを適用するセル範囲、指定したフィルタ条件、フィルタモードといった情報が含まれます。
既存のフィルタ設定およびテーブルフィルタ設定にアクセスするには、AutoFilterプロパティを使用します。
次のサンプルコードは、ワークシート内の現在のフィルタ設定、およびテーブルフィルタ設定にアクセスします。
C# |
コードのコピー
|
---|---|
// 現在のフィルタ設定にアクセスします。 IAutoFilter worksheetAutoFilter = fpSpread1.AsWorkbook().ActiveSheet.AutoFilter; IFilter columnCFilter = worksheetAutoFilter.Filters[1]; // テーブルフィルタ設定にアクセスします。 IAutoFilter tableAutoFilter = fpSpread1.AsWorkbook().ActiveSheet.Tables["table1"].AutoFilter; IFilter columnFilter = tableAutoFilter.Filters[0]; |
VB |
コードのコピー
|
---|---|
' 現在のフィルタ設定にアクセスします。 Dim worksheetAutoFilter As GrapeCity.Spreadsheet.IAutoFilter worksheetAutoFilter = FpSpread1.AsWorkbook().ActiveSheet.AutoFilter Dim columnCFilter As IFilter = worksheetAutoFilter.Filters(1) ' テーブルフィルタ設定にアクセスします。 Dim tableAutoFilter As IAutoFilter = FpSpread1.AsWorkbook().ActiveSheet.Tables("table1").AutoFilter Dim columnFilter As IFilter = tableAutoFilter.Filters(0) |
注:1つのワークシート内で、列フィルタとセル範囲フィルタを同時に使用することはできません。また、1つのワークシート内では1つのセル範囲にしかフィルタを適用することはできません。 |