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

一般機能での質問が多い現象ですが、「ピボットテーブルの元データからデータを削除したにもかかわらず、フィールド内のアイテムに削除したアイテム名が残ってしまう」ということがあります。

一から(マクロで)作り変えれば、問題は解消するわけですが、作り置きしたピボットテーブルのまま問題を解決させるためには、MSのサポート情報にある「[XL97] [ピボットテーブル フィールド] ダイアログ ボックスに無効なフィールド名が表示される」内のコードを実行するように回答するのが一般的です。

でも、中には、いくつものピボットテーブルを作って利用している人もいるわけで、マクロをあまり使ったことがない人が、一々シート名や(正確に把握していない)ピボットテーブル名を変更しながら処理していくのも大変ですよね。

ということで、以下のマクロを作ってみました。
サポート情報のマクロが面倒だなと感じたら使ってみてください。
(使うときには解決しているかもしれませんが……)

 ◇ ◇ ◇ ◇ ◇

Sub PvtFldItemReset()
'アクティブブック内の各ピボットテーブルの
'フィールド内に残った不要なアイテムを削除する

  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

comment

Secre

やっとできそうです

ピボットテーブルで存在しないアイテムを消す方法がわからずに困っていました。
このマクロで解決できそうです。
ありがとうございます。

Excel素人さん、こんにちは。

解決できそうでよかったですね。(^_^)
もし解決できなかったらグループ化しているフィールドがないか確認してみてください。
某掲示板での質問で上記マクロで削除できず、グループ化を解除したら削除できたとの報告がありました。

MSのサポートより記事より、ずっと使いやすいマクロです。
ありがたく使用させて頂きました。感謝です。

今後ともよろしくお願いいたします。

yakibuta39さん、こんにちは。

稚拙なコードですが、お役に立ててうれしいです。
わざわざコメントありがとうございました。<(_ _)>

No title

とても助かりました
ありがとうございます

ありがとうございました!

このマクロで、会社で3年困っていた問題が、
一瞬で解決しました。とても感謝しています。
ありがとうございました。

Re: ありがとうございました!

エクセル修行中さん、こんにちは。

ご訪問ありがとうございます。<(_ _)>

> このマクロで、会社で3年困っていた問題が、
> 一瞬で解決しました。とても感謝しています。
問題が解決してよかったですね。
機能追加よりこういう問題がなくなるといいですね。

解決しました

 ありがとう! なんてご親切な! 感謝です♪

一発解決です

 ありがとうございました。
おっしゃるとおり、ピボットテーブル単位でマクロをかけていくのは、
面倒です。
一揆に、しかも簡単に解決し、感動です。
たいへん助かりました。

m(_ _)m

すばらしいです!!

何種類か試してだめで。。こちらのコードで一発解決しました!
ほんとに助かりました。ありがとうございました!

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます
カテゴリ
テーマ
プロフィール

OtenkiAme(Tasan)

Author:OtenkiAme(Tasan)
正早安楽を目指しながらも、言うことを聞かないExcelに使われている人です。

ブログ内検索
FC2カウンター
最近のコメント
最近のトラックバック
RSSフィード