|
1、オートフィルターを解除する
Sub オートフィルタ解除()
'Sheets("Sheet1").AutoFilterMode = False
ActiveSheet.AutoFilterMode = False
End Sub
2、オートフィルターを全て表示にする。
オートフィルタで、抽出状態の物があれば、全オートフィルタを全表示にする。
(1つも抽出状態で無いのに、全表示にするとエラーになる。)
Sub オートフィルター全表示()
If ActiveSheet.FilterMode = True Then
ActiveSheet.ShowAllData
End If
End Su
3、オートフィルタ部分的に全表示にする。
・セルまたは、列を選択指定する。
選択したセルの列のオートフィルタを「全て表示」にする。
(尚、複数列選択に対しては、対応してません。左右の一方からしか順に調べられない。)
Sub 選択部分全表示()
Dim ColC As Range, ColNo As Integer
If ActiveSheet.FilterMode = False Then Exit Sub
With ActiveSheet.AutoFilter
For i = 1 To .Filters.Count
If .Filters.Item(i).On Then
ColNo = .Range.Cells(i).EntireColumn.Column
Set ColC = Application.Intersect(Selection, Columns(ColNo))
If Not ColC Is Nothing Then
MsgBox "フィルター範囲 " & i & " 列目解除" & vbLf & _
Chr(.Range.Cells(1).Column + i + 63) & " 列"
'↑テスト用確認の為、Z列までがまともに表示される。AA列以降は未対応。
.Range.Cells(1).AutoFilter Field:=i
Set ColC = Nothing
'↓フィルタされた順番はわかりません。コメントにして複数に対応させるときは注意。
Exit Sub
End If
End If
Next
End With
End Sub
・フィルタ範囲列指定する。
オートフィルタ範囲の3列目を「全表示」にする。
Sub 部分全表示()
If ActiveSheet.FilterMode = False Then Exit Sub
Rtu = 3
ActiveSheet.AutoFilter.Range.Cells(1).AutoFilter Field:=Rtu
End Sub
|
|