GcSpreadSheetは、テキスト、日付、セル色、フォント色、条件付き書式などデータに対してフィルタを適用できます。
本機能は、ワークシート内の関連データのみを(指定されたフィルター条件に基づいて)表示し、不要なデータを非表示にします。複数のフィルタも適用でき、データ全体を表示する際、フィルタを解除することもできます。
大きなワークシートでデータを処理する場合、列にフィルタを適用することでデータを絞り込むことができます。列フィルタリングを使用すると、ユーザーが条件を指定して、ワークシートに関連する行のみを表示でき、条件に合わないデータを非表示にすることができます。フィルタを削除して非表示のデータを再表示することも可能です。
ワークシートに列フィルタを適用するには、IRangeインタフェースのAutoFilterメソッドを使用する必要があります。DynamicFilterType列挙体をAboveAverage、BelowAverage、LastQuarter、LastMonth、NextWeekなどの値に設定することで、フィルタ条件を指定できます
データをセル値だけではなく、AutoFilter.FilterDataEntry構造体のFontColorフィールド、ColorManagerフィールドおよびFormatterフィールドを使用することで、フォント色、セル色、条件付き書式設定に基づいてもフィルタできます。
コードのコピー
|
|
---|---|
// 列フィルタリング。 GcSpreadSheet.Workbook.Worksheets[0].Range("A1").Value = 17; GcSpreadSheet.Workbook.Worksheets[0].Range("A2").Value = 12; GcSpreadSheet.Workbook.Worksheets[0].Range("A3").Value = 23; GcSpreadSheet.Workbook.Worksheets[0].Range("A4").Value = 230; GcSpreadSheet.Workbook.Worksheets[0].Range("A5").Value = 234; GcSpreadSheet.Workbook.Worksheets[0].Range("A6").Value = 11; GcSpreadSheet.Workbook.Worksheets[0].Range("A7").Value = 3; GcSpreadSheet.Workbook.Worksheets[0].Range("A8").Value = 123; GcSpreadSheet.Workbook.Worksheets[0].Range("A9").Value = 579; GcSpreadSheet.Workbook.Worksheets[0].Range("A12").Value = 12; GcSpreadSheet.Workbook.Worksheets[0].Range("A13").Value = 23; GcSpreadSheet.Workbook.Worksheets[0].Range("A14").Value = 230; GcSpreadSheet.Workbook.Worksheets[0].Range("A15").Value = 234; GcSpreadSheet.Workbook.Worksheets[0].Range("A16").Value = 11; GcSpreadSheet.Workbook.Worksheets[0].Range("A17").Value = 3; GcSpreadSheet.Workbook.Worksheets[0].Range("A18").Value = 123; GcSpreadSheet.Workbook.Worksheets[0].Range("A19").Value = 579; GcSpreadSheet.Workbook.Worksheets[0].Name = " ColumnFiltering"; // DynamicFilterTypeを使用してBelowAverageの値のみを表示するための列Aのフィルタリング。 GcSpreadSheet.Workbook.Worksheets[0].Columns[0].AutoFilter(true); GcSpreadSheet.Workbook.Worksheets[0].Columns[0].AutoFilter(0, DynamicFilterType.BelowAverage); |
コードのコピー
|
|
---|---|
'列フィルタリング。 GcSpreadSheet.Workbook.Worksheets(0).Range("A1").Value = 17 GcSpreadSheet.Workbook.Worksheets(0).Range("A2").Value = 12 GcSpreadSheet.Workbook.Worksheets(0).Range("A3").Value = 23 GcSpreadSheet.Workbook.Worksheets(0).Range("A4").Value = 230 GcSpreadSheet.Workbook.Worksheets(0).Range("A5").Value = 234 GcSpreadSheet.Workbook.Worksheets(0).Range("A6").Value = 11 GcSpreadSheet.Workbook.Worksheets(0).Range("A7").Value = 3 GcSpreadSheet.Workbook.Worksheets(0).Range("A8").Value = 123 GcSpreadSheet.Workbook.Worksheets(0).Range("A9").Value = 579 GcSpreadSheet.Workbook.Worksheets(0).Range("A12").Value = 12 GcSpreadSheet.Workbook.Worksheets(0).Range("A13").Value = 23 GcSpreadSheet.Workbook.Worksheets(0).Range("A14").Value = 230 GcSpreadSheet.Workbook.Worksheets(0).Range("A15").Value = 234 GcSpreadSheet.Workbook.Worksheets(0).Range("A16").Value = 11 GcSpreadSheet.Workbook.Worksheets(0).Range("A17").Value = 3 GcSpreadSheet.Workbook.Worksheets(0).Range("A18").Value = 123 GcSpreadSheet.Workbook.Worksheets(0).Range("A19").Value = 579 GcSpreadSheet.Workbook.Worksheets(0).Name = " ColumnFiltering" 'DynamicFilterTypeを使用してBelowAverageの値のみを表示するための列Aのフィルタリング。 GcSpreadSheet.Workbook.Worksheets(0).Columns(0).AutoFilter(true) GcSpreadSheet.Workbook.Worksheets(0).Columns(0).AutoFilter(0, DynamicFilterType.BelowAverage) |
列のデータ全体にフィルタを適用しないで、特定の範囲のみをフィルタ対象とするには、範囲フィルタを使用できます。
ワークシートに範囲フィルタを適用するには、フィルタ対象の範囲を指定し、フィルタした範囲を取得するにはIRangeインタフェースのAutoFilterメソッドを使用する必要があります。
コードのコピー
|
|
---|---|
// 範囲フィルタリング。 GcSpreadSheet.Workbook.Worksheets[1].Range("B2").Value = "Banana"; GcSpreadSheet.Workbook.Worksheets[1].Range("B3").Value = "Banana"; GcSpreadSheet.Workbook.Worksheets[1].Range("B4").Value = "Apple"; GcSpreadSheet.Workbook.Worksheets[1].Range("B5").Value = "Orange"; GcSpreadSheet.Workbook.Worksheets[1].Range("B6").Value = "Banana"; GcSpreadSheet.Workbook.Worksheets[1].Range("B7").Value = "Orange"; GcSpreadSheet.Workbook.Worksheets[1].Range("B8").Value = "Apple"; GcSpreadSheet.Workbook.Worksheets[1].Range("B9").Value = "Banana"; GcSpreadSheet.Workbook.Worksheets[1].Range("C2").Value = "Banana"; GcSpreadSheet.Workbook.Worksheets[1].Range("C3").Value = "Orange"; GcSpreadSheet.Workbook.Worksheets[1].Range("C4").Value = "Apple"; GcSpreadSheet.Workbook.Worksheets[1].Range("C5").Value = "Banana"; GcSpreadSheet.Workbook.Worksheets[1].Range("C6").Value = "Orange"; GcSpreadSheet.Workbook.Worksheets[1].Range("C7").Value = "Orange"; GcSpreadSheet.Workbook.Worksheets[1].Range("C8").Value = "Apple"; GcSpreadSheet.Workbook.Worksheets[1].Range("C9").Value = "Banana"; GcSpreadSheet.Workbook.Worksheets[1].Range("D2").Value = "Apple"; GcSpreadSheet.Workbook.Worksheets[1].Range("D3").Value = "Banana"; GcSpreadSheet.Workbook.Worksheets[1].Range("D4").Value = "Orange"; GcSpreadSheet.Workbook.Worksheets[1].Range("D5").Value = "Apple"; GcSpreadSheet.Workbook.Worksheets[1].Range("D6").Value = "Banana"; GcSpreadSheet.Workbook.Worksheets[1].Range("D7").Value = "Orange"; GcSpreadSheet.Workbook.Worksheets[1].Range("D8").Value = "Apple"; GcSpreadSheet.Workbook.Worksheets[1].Range("D9").Value = "Banana"; GcSpreadSheet.Workbook.Worksheets[1].Name = " RangeFiltering"; // 次のコードは、列C(1はフィルターの左列Bから2番目の列)を「Banana」でフィルタします。 GcSpreadSheet.Workbook.Worksheets[1].Range("B1:D10").AutoFilter(1, "Banana"); |
コードのコピー
|
|
---|---|
'範囲フィルタリング。 GcSpreadSheet.Workbook.Worksheets(1).Range("B2").Value = "Banana" GcSpreadSheet.Workbook.Worksheets(1).Range("B3").Value = "Banana" GcSpreadSheet.Workbook.Worksheets(1).Range("B4").Value = "Apple" GcSpreadSheet.Workbook.Worksheets(1).Range("B5").Value = "Orange" GcSpreadSheet.Workbook.Worksheets(1).Range("B6").Value = "Banana" GcSpreadSheet.Workbook.Worksheets(1).Range("B7").Value = "Orange" GcSpreadSheet.Workbook.Worksheets(1).Range("B8").Value = "Apple" GcSpreadSheet.Workbook.Worksheets(1).Range("B9").Value = "Banana" GcSpreadSheet.Workbook.Worksheets(1).Range("C2").Value = "Banana" GcSpreadSheet.Workbook.Worksheets(1).Range("C3").Value = "Orange" GcSpreadSheet.Workbook.Worksheets(1).Range("C4").Value = "Apple" GcSpreadSheet.Workbook.Worksheets(1).Range("C5").Value = "Banana" GcSpreadSheet.Workbook.Worksheets(1).Range("C6").Value = "Orange" GcSpreadSheet.Workbook.Worksheets(1).Range("C7").Value = "Orange" GcSpreadSheet.Workbook.Worksheets(1).Range("C8").Value = "Apple" GcSpreadSheet.Workbook.Worksheets(1).Range("C9").Value = "Banana" GcSpreadSheet.Workbook.Worksheets(1).Range("D2").Value = "Apple" GcSpreadSheet.Workbook.Worksheets(1).Range("D3").Value = "Banana" GcSpreadSheet.Workbook.Worksheets(1).Range("D4").Value = "Orange" GcSpreadSheet.Workbook.Worksheets(1).Range("D5").Value = "Apple" GcSpreadSheet.Workbook.Worksheets(1).Range("D6").Value = "Banana" GcSpreadSheet.Workbook.Worksheets(1).Range("D7").Value = "Orange" GcSpreadSheet.Workbook.Worksheets(1).Range("D8").Value = "Apple" GcSpreadSheet.Workbook.Worksheets(1).Range("D9").Value = "Banana" GcSpreadSheet.Workbook.Worksheets(1).Name = " RangeFiltering" '次のコードは、列C(1はフィルターの左列Bから2番目の列)を「Banana」でフィルタします。 GcSpreadSheet.Workbook.Worksheets(1).Range("B1:D10").AutoFilter(1, "Banana"); |