従来の XLS AutoFilter 範囲を設定し、フィールドごとの条件を 1 回の呼び出しで適用します
構文
procedure ApplyAutoFilter(ARange: WideString; Field: Integer; Criteria1: Variant); overload;
procedure ApplyAutoFilter(ARange: WideString; Field: Integer; Criteria1: Variant; Operator: XlAutoFilterOperator; Criteria2: Variant); overload;
procedure ApplyAutoFilter(ARow1, ACol1, ARow2, ACol2: Integer; Field: Integer; Criteria1: Variant); overload;
procedure ApplyAutoFilter(ARow1, ACol1, ARow2, ACol2: Integer; Field: Integer; Criteria1: Variant; Operator: XlAutoFilterOperator; Criteria2: Variant); overload;
備考
文字列オーバーロードは A1:C5 のような A1 形式の範囲を受け付けます。数値のオーバーロードは 1 始まりの行/列インデックスを使います。Field も AutoFilter 範囲内で 1 始まりです
ApplyAutoFilter は、既存のワークシート レベルの AutoFilter 範囲を指定された範囲に置き換えた後、同じ BIFF8 フィールド条件レコードを書き込みます。使用元: IXLSRange.Autofilter
比較演算子(>=、<=、<>、>、<、=)で始まり、その後に数値が続くテキスト条件('>=100' や '=2.5' など)は、数値条件として保存され、Excel と同じように数値セルに一致します。数値は小数点記号にピリオドを使って書いてください。'100' のような値だけのテキストを含め、それ以外のテキストはテキスト条件として保存されます
TXLSWorksheet.AutoFilterColumns を使うと、クラシック XLS のオートフィルターを適用または読み取った後で、格納されているフィールドごとの条件を確認できます
関連項目
Workbook := TXLSWorkbook.Create;
try
Sheet := Workbook.Sheets[1];
Sheet.ApplyAutoFilter('A1:C5', 2, '>=100');
Workbook.SaveAs('filtered.xls', xlExcel97);
finally
Workbook.Free;
end;
関連項目