Delphi Seattle、Excel 2013。既存のExcelファイルを変更するDelphiアプリケーションがあります。シートに行1のフィルタリングが有効になっていない場合(各列のフィルタのドロップダウンボックスと呼ばれます)、それをオンにします。私はそれをオンにする方法を知っています。問題は、「それをオンにする」ことは本当にトグルなので、私はそれがすでに行われているかどうかを判断する必要があります。これはできないようです。コードの該当部分は以下のとおりです。Delphi - Excelにフィルタが有効になっているかどうかを確認する
var
aws: ExcelWorksheet;
begin
...
aws := oExcel.ActiveSheet as ExcelWorksheet;
if aws.FilterMode[LOCALE_USER_DEFAULT] = False then
aws.Cells.Item[1, 1].Rows.EntireRow.AutoFilter;
問題は、私のIF文は常に行1は、フィルタが有効になっている場合でも、FALSEを返すということです。私はFalseの代わりにmsoFalseを使ってみましたが、 'Incompatible Type'というエラーが出ます。フィルタリングを実行したくないことに注意してください。ドロップダウンを表示して、ユーザーにとって使いやすいようにしてください。フィルタのドロップダウンを表示しているのとは対照的に、フィルタが実際に実装されているかどうかを確認することが問題だと思いますが、他の方法を調べる方法はわかりません...
それはそれを完全に逃したのです。ありがとう! – user1009073