ちょっと生きづらさを抱えた人へ、気持ちを楽にするためのお手紙です。

ピボットテーブルから存在しないフィールドを削除する【Excel VBA】

Hello, みすく です

Excelのピボットテーブルは、ピボットのデータソースを変更した際、

データソースから消えてしまったフィールドが、そのまま残ってしまいます。

マクロで消してしまいましょう。

コードは雨のち晴れさんからの転載です。

フィールド内に残った無効なアイテムを削除する

(※ 関数名はわたし好みに変えました)

'----------------------------------------------------------------
' ピボットテーブルからソースに存在しないフィールドを削除する
'----------------------------------------------------------------
Sub ResetPvtFldItem()
'アクティブブック内の各ピボットテーブルの
'フィールド内に残った不要なアイテムを削除する

    Dim mySht As Worksheet
    Dim pvtTbl As PivotTable
    Dim PvtFld As PivotField
    Dim pvtItem As PivotItem

    On Error Resume Next
    For Each mySht In ActiveWorkbook.Worksheets
        For Each pvtTbl In mySht.PivotTables
            For Each PvtFld In pvtTbl.PivotFields
                For Each pvtItem In PvtFld.PivotItems
                    pvtItem.Delete
                Next pvtItem
            Next PvtFld
        Next pvtTbl
    Next mySht
    On Error GoTo 0
    ActiveWorkbook.RefreshAll

End Sub

 

ごきげんよう

コメントを残す

メールアドレスが公開されることはありません。