古いマクロが動作しないようです。VBAマクロを実行するために適切なセキュリティを設定していますが、ワークシート上のすべてのフィルタをクリアするいくつかの方法を試したところ、コンパイルエラーが発生しました。
私が試した方法は以下の通りです。
以下はその例です。 Sub AutoFilter_Remove() 'このマクロは、すべてのデータを表示するためにフィルタリングを解除しますが、フィルタの矢印は解除されません。 ActiveSheet.ShowAllData End Sub
シートにはフィルタをかけた列がたくさんあるので、ユーザーが使いやすいようにフィルタをすべて解除するボタンを設けています。
このようにしてみてください。
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`メソッドについての詳細を説明します。