[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ピボット更新のマクロ』(suzu_miyu)
ピボット更新で、元データが変わっても
『「店舗」列の中にある、「一覧」以外のものはすべて選択』
とさせたいです。
記憶マクロを組んで作ったのですが、元データを変えるとうまく起動してくれません。
マクロは以下のようになってます。
ActiveSheet.PivotTables("ピボットテーブル1").PivotCache.Refresh With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("店舗") .PivotItems("一覧").Visible = False
どうぞ、わかりましたら教えていただければと思います。
エクセルは2007を使用しています。
よろしくお願いします。
>元データを変えるとうまく起動してくれません。
1.上手く起動しないとは、どうなっちゃうのですか?
2.どう云う風に変えたのですか? 値を変更したのですか? データを追加したのですか? (この場合、新範囲がカバーされる様な指定になっていますか?)
(半平太) 2011/05/02 10:48
1.うまく起動しないとは
→ピボットの元データを変えると、ピボットの更新はされるのですが、マクロを組んだ際に含まれていた言葉は選択され、含まれていない言葉(新しく上書きした言葉)は、選択されない状態です。
本当は「一覧」という言葉以外はすべて選択させたいのです。
2.どういう風に変えたのですか?新範囲がカバーされるような指定になってますか?
→元データの「フィールド名」は変更しないまま、値(店舗名)を変更しています。範囲はカバーされるような指定になってます。
伝わりづらいでしょうか・・・。
>>1.うまく起動しないとは → >ピボットの元データを変えると、ピボットの更新はされるのですが、 >マクロを組んだ際に含まれていた言葉は選択され、 >含まれていない言葉(新しく上書きした言葉)は、選択されない状態です。 >本当は「一覧」という言葉以外はすべて選択させたいのです。
なるほどです。テストしたら実行時エラー1004が出ました。
中身を見ると、上書きされて消滅したはずの店舗名が、どう云う訳か PivotItemsに残っており、その店舗名のVisibleプロパティを操作しようとすると、 そんなものはもう無いよと云う(詐欺みたいな)状態になる様です。
バグっぽいです。 以下、取りあえず、On Error Resume Next で逃げる案
Sub pvtRefresh()
Dim pvtItm As Object
ActiveSheet.PivotTables("ピボットテーブル1").PivotCache.Refresh
With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("店舗") For Each pvtItm In .PivotItems On Error Resume Next If pvtItm.Name = "一覧" Then pvtItm.Visible = False Else pvtItm.Visible = True End If On Error GoTo 0 Next End With
End Sub
(半平太) 2011/05/03 08:20
しかし、バクっぽいんですね><
(suzu_miyu) 2011/5/13 23:08
こんにちは。
XL2003までは、半平太さんの例のように一つずつ Visible = False/True を設 定していくか、Sendkeysを使って“すべて表示”にチェックを入れるしかなかっ たのですが、一つずつ処理をしていくと、その都度更新されますから集計内容 によっては時間がかかることがあります。 XL2007以降では、ピボットフィールドオブジェクトに対して .ClearAllFilters メソッドが用意され、“すべて選択”ができるようになっていますので、使って みたら如何でしょうか?
Sub Sample() If Val(Application.Version) < 12 Then Exit Sub With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("店舗") Select Case .Orientation Case xlDataField, xlHidden, xlPageField Exit Sub Case Else End Select .ClearAllFilters .PivotItems("一覧").Visible = False End With End Sub
(OtenkiAme)
こんにちわ!
これでやってみましたら、倍以上の速さになりました!!
本当にありがとうございますm(__)m
御礼申し上げます!!
suzu_miyu
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.