Excel 2013 VBA すべてのフィルタをクリアするマクロ

古いマクロが動作しないようです。VBAマクロを実行するために適切なセキュリティを設定していますが、ワークシート上のすべてのフィルタをクリアするいくつかの方法を試したところ、コンパイルエラーが発生しました。

私が試した方法は以下の通りです。

以下はその例です。 Sub AutoFilter_Remove() 'このマクロは、すべてのデータを表示するためにフィルタリングを解除しますが、フィルタの矢印は解除されません。 ActiveSheet.ShowAllData End Sub

シートにはフィルタをかけた列がたくさんあるので、ユーザーが使いやすいようにフィルタをすべて解除するボタンを設けています。

試してみてください。

If ActiveSheet.AutoFilterMode Then ActiveSheet.ShowAllData
解説 (3)
ソリューション

もし、そのシートにすでにフィルターが付いているのであれば。

Sub Macro1()
    Cells.AutoFilter
End Sub

はそれを取り除きます。

解説 (1)

このようにしてみてください。

Sub ClearDataFilters()
'Clears filters on the activesheet. Will not clear filters if the sheet is protected.
On Error GoTo Protection
If ActiveWorkbook.ActiveSheet.FilterMode Or _
   ActiveWorkbook.ActiveSheet.AutoFilterMode Then _
   ActiveWorkbook.ActiveSheet.ShowAllData

Exit Sub
Protection:
If Err.Number = 1004 And Err.Description = _ 
    "ShowAllData method of Worksheet class failed" Then
    MsgBox "Unable to Clear Filters. This could be due to protection on the sheet.", _
    vbInformation
End If

End Sub

.FilterMode は、ワークシートがフィルタモードになっている場合に true を返します。(詳細はこちらを参照してください。) .AutoFilterの詳細は[こちら][2]を参照してください。 そして最後に、[this][3]では、.ShowAllData`メソッドについての詳細を説明します。

解説 (0)