|
▼セルの右クリックだけで部分的に全表示にしたい場合。
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim ColC As Range, ColNo As Integer
If ActiveSheet.FilterMode = False Then Exit Sub
With ActiveSheet.AutoFilter
If Not Application.Intersect(Target, .Range.Rows(1)) Is Nothing Then
Cancel = True
For i = 1 To .Filters.Count
If .Filters.Item(i).On Then
ColNo = .Range.Cells(i).EntireColumn.Column
Set ColC = Application.Intersect(Target, 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 If
End With
End Sub
|
|