💻

ExcelVBAでピボットテーブルの行フィールド等にフィルタをかける

2022/04/28に公開

VBAで行フィルタ等にフィルタをかけるSubプロシージャ

'ピボットの任意のアイテムのみを表示する
'任意のアイテム以外を非表示にする
'引数1:シート名
'引数2:ピボットテーブル名
'引数3:フィールド名
'引数4:この値だけを表示する
Private Sub S_OnlyOneVisiblePivot(ByVal arg_filterSheetName As String, arg_filterPivotName As String, ByVal arg_filterFieldsName As String, ByVal arg_visibleItemName As String)
    
    Dim filterSheet As Worksheet
    Dim i, cntItem As Long
    Set filterSheet = ActiveWorkbook.Worksheets(arg_filterSheetName)
    
    With filterSheet.PivotTables(arg_filterPivotName).PivotFields(arg_filterFieldsName)
        cntItem = .PivotItems.Count
        For i = 1 To cntItem
            If arg_visibleItemName <> .PivotItems(i) Then
                .PivotItems(i).Visible = False
            End If
        Next
    End With
    
End Sub

Discussion