HotXLS ドキュメント

ApplyAutoFilter メソッド

従来の 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;

関連項目