フィルターでどの項目で何を絞ったかを抽出する。
テーブルシートでマクロ実行をすること。
グラフシートのH列31行目に値を返している。
Sub フィルターリスト()
Application.ScreenUpdating = False
Worksheets("グラフ").Select
Range("H31", Cells(Rows.Count, 8).End(xlUp)).ClearContents
Worksheets("テーブル").Select
Range("A1").Select
Dim srcWS As Worksheet
Set srcWS = ActiveSheet
Dim dstWS As Worksheet
Set dstWS = Worksheets("グラフ")
Dim i As Long
Dim r As Long
r = 31
With srcWS.AutoFilter
For i = 1 To .Filters.Count
If .Filters(i).On = True Then
If .Filters(i).Operator <> 0 Then
If .Filters(i).Operator = xlFilterValues Then
dstWS.Cells(r, "H").Value = .Range.Cells(1, i).Value & ":" & Join(.Filters(i).Criteria1, ",")
Else
dstWS.Cells(r, "H").Value = .Range.Cells(1, i).Value & ":" & .Filters(i).Criteria1 & " と " & .Filters(i).Criteria2
End If
Else
dstWS.Cells(r, "H").Value = .Range.Cells(1, i).Value & ":" & .Filters(i).Criteria1
End If
r = r + 1
End If
Next
End With
'上記の返値から=を消す
Worksheets("グラフ").Select
Range("H30") = "【下記で絞ってます】"
Range("H31", Cells(Rows.Count, 8).End(xlUp)).Select
Selection.Replace What:="=", Replacement:=""
Application.ScreenUpdating = True
End Sub
0 件のコメント:
コメントを投稿