プロが教えるわが家の防犯対策術!

エクセル2007を使用し、売上や客数を管理する表を作成しています。Sheet1には入力フォームを作成し、Sheet2からは月毎に管理しようと考えています。入力フォーム(Sheet1)には随時データが追加される為 テーブルを実行し、Sheet2からはピボットテーブルで月毎に管理表を作成しました。
ここからが本題ですが、管理表を作成し更新すると指定外の月も管理表に反映される為、日付フィルタより指定の範囲内で月の指定を実施しました。①更新と②指定の月の範囲指定の2つを、1回の処理で実施するマクロ設定は可能でしょうか?マクロ初心者の為、マクロの記憶で登録しましたが適当な数値を入れてテスト実行した際に、実行時エラー’1004’: アプリケーション定義またはオブジェクト定義のエラーです。と表示され、実行できませんでした。(下記の明記が登録マクロです)

Sub Macro1()
'
' Macro1 Macro
'

'
ActiveSheet.PivotTables("ピボットテーブル1").PivotCache.Refresh
ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("日付").PivotFilters.Add _
Type:=xlDateBetween, Value1:="2016/6/1", Value2:="2016/6/30"
End Sub


上記の ⇒ ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("日付").PivotFilters.Add _
Type:=xlDateBetween, Value1:="2016/6/1", Value2:="2016/6/30"
の部分が黄色い編みかけが出ました。色々と調べてみましたが、勉強不足もあり、原因と対処方法が分かりませんでした。

質問文だけでは、分かり辛い筈ですので、画像も添付させて頂きました。

ご教授の程、宜しくお願い致します。

「エクセル ピボットテーブルのマクロ設定に」の質問画像

A 回答 (1件)

tk0244さんが書いたマクロですが、Sheet2がアクティブの状態で実行すれば、正常に動きますよね?


もし、別のシートがアクティブの状態でも正しく動かしたいのであれば、次のように修正してみて下さい。

Sub Macro1()
Sheets("Sheet2").PivotTables("ピボットテーブル1").PivotCache.Refresh
Sheets("Sheet2").PivotTables("ピボットテーブル1").PivotFields("日付").PivotFilters.Add _
Type:=xlDateBetween, Value1:="2016/6/1", Value2:="2016/6/31"
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。思い通りの処理が出来ました。シートを指定すれば良かったのですね?マクロは奥が深いですが、頑張って勉強します。本当にありがとうございました。

お礼日時:2016/07/16 20:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています