複数のピボットテーブルのフィルタを一括選択

このQ&Aのポイント
  • マクロ(VBA2007)を使用して、複数のピボットテーブルのレポートフィルターを一括で選択する方法について教えてください。
  • 現在、マクロでは名前が「ピボットテーブル1」となっているピボットテーブルのみを操作することができます。
  • 複数のピボットテーブルを一括で選択する方法をお知らせください。
回答を見る
  • ベストアンサー

複数のピボットテーブルのフィルタを一括選択

マクロ(VBA2007)で、作業中の1つのシートにある、複数のピボットテーブルのレポートフィルターを一括で選択しようとしております。以下のマクロでは”ピボットテーブル1”と名前のついたピボットしか操作できませんでした。複数のピボットを一括で選択する方法を教えていただけますか?(メーカー名がA、B、Cとあるフィルターです) ******************* Sub try()   Dim pf As PivotField   Dim p As PivotItem   Set pf = ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("メーカー")   pf.Orientation = xlPageField   pf.ClearAllFilters   For Each p In pf.PivotItems     Select Case p.Value     Case "A", "C" '表示アイテム名をカンマ区切りで指定     Case Else       p.Visible = False     End Select   Next End Sub *********************** よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

イミディエイトウィンドウ(VBE画面で Ctrl + G)での確認ですが ?ActiveSheet.PivotTables.count ?ActiveSheet.PivotTables(1).name などで値が取得できるので(当方Excel2010) これを利用してFor ~ Next ループで処理出来ないかな? ご参考まで。

okwaveid123
質問者

お礼

お礼が遅くなってしまいましたが、ご回答どうもありがとうございます!

関連するQ&A

  • Excel2010 です。ピポッドテーブルフィルタ

    Excel2010 です。ピポッドテーブルフィルターを解除するVBAですが、フィルターモードになっていない時にエラーが出てしまいます。また、PivotFields("○○○")が複数あるのですが、それぞれフィールド名を記述するのではなく、 一括で処理出来れば助かります。 ご教示のほど、よろしくお願い致します。 Sub ピポッドテーブルフィルター解除テスト() Dim pf As PivotField Dim p As PivotItem Set pf = ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("店舗名") pf.Orientation = xlPageField pf.ClearAllFilters For Each p In pf.PivotItems Select Case p.Value End Select Next End Sub

  • ピボットテーブルの範囲を選択したい

    vbaでピボットテーブルの端から端までを選択し、罫線をつけるコードを書きたいのですが シートにはピボットテーブル以外のデータがある為、 Sub tset() Dim rngData As Range Set rngData = ActiveSheet.UsedRange rngData.Select End Sub こういう事をすると、ピボットテーブル以外も選択されてしまいます。 ピボットテーブル1の範囲.Select みたいなことはできますか?

  • ピボットテーブルのマクロに関して

    ピボットテーブルのマクロを組む際に、必要な項目だけを表示させたいのですが、うまく行きません。 私は、マクロを学び始めて1カ月で、まだよくわかっていません。 下の例の場合 --------------------------------------------------------------- Sub Macro1() ' ' Macro1 Macro ' ' Sheets.Add ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "データ!R1C1:R255C6", Version:=xlPivotTableVersion10).CreatePivotTable _ TableDestination:="Sheet2!R3C1", TableName:="ピボットテーブル2", DefaultVersion _ :=xlPivotTableVersion10 Sheets("Sheet2").Select Cells(3, 1).Select With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("課名") .Orientation = xlRowField .Position = 1 End With With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("地区名") .Orientation = xlColumnField .Position = 1 End With ActiveSheet.PivotTables("ピボットテーブル2").AddDataField ActiveSheet.PivotTables( _ "ピボットテーブル2").PivotFields("売上額"), "データの個数 / 売上額", xlCount With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("課名") .PivotItems("営業第1課").Visible = False .PivotItems("営業第4課").Visible = False End With With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("地区名") .PivotItems("いなべ町").Visible = False .PivotItems("海南町").Visible = False .PivotItems("吉野川町").Visible = False .PivotItems("魚津町").Visible = False .PivotItems("篠山町").Visible = False .PivotItems("小諸町").Visible = False .PivotItems("小野田町").Visible = False .PivotItems("西予町").Visible = False .PivotItems("石垣町").Visible = False .PivotItems("滝川町").Visible = False .PivotItems("東根町").Visible = False .PivotItems("南足柄町").Visible = False .PivotItems("日南町").Visible = False .PivotItems("萩町").Visible = False .PivotItems("八日町町").Visible = False .PivotItems("浜田町").Visible = False .PivotItems("府中町").Visible = False .PivotItems("本荘町").Visible = False End With End Sub --------------------------------------------------------------- 「営業第2課・営業第3課」を表示させるために、一度、課名を全部 表示させてから「営業第1課・営業第4課」を非表示にしています。 そして、町に関しても、いったん全部を表示させてから、不必要な町を 非表示にしています。 これを、表示したい項目だけ選択できるようなマクロに修正は できないでしょうか。 実際のデータは会社から持ち出せないようになっていて、 わかりづらかったら済みません。

  • ピボットテーブルの範囲を選択する事はできますか?

    ピボットテーブルの範囲を選択する事はできますか? ピボットテーブルをクリックして、 CTRL+Aを押すと、 現在アクティなピボットテーブル全体を選択できます。 この動きをマクロの記録で取ってみたのですが Sub Macro1() Range("A3:B9").Select Range("B8").Activate End Sub しか記録されてませんでした。 やりたいことは、該当のピボットテーブル全体を選択し、 その範囲に名前を付けたいのですが まずピボットテーブルの範囲を選択するマクロ(VBA)を作成したいです。 ピボットテーブル名を指定して範囲を選択することはできないのでしょうか? Cells(Rows.Count, "A").End(xlUp).Row など最終行、最終列を取得していくしかないのでしょうか?

  • ピボットテーブルの操作をマクロの記録で

    退職者が残したエクセルファイルがあります。 ピボットテーブル生成の操作をマクロの記録を使って自動化したようです。 私はピボットテーブルを一度も操作した事が有りません。 ですがマクロの記録で作られた構文を VBEのF8キーで1行づつ動作させると画面が変化していくので どういう操作をしてマクロの構文が出来たのかは分かりました。 ですが以下の部分だけ画面上の変化が無く何をどうすると この構文が作成されるのかまったく分かりません。 ピボットテーブルに関する件を検索しようにも マクロを使わない手操作でどういう操作、どういう機能を使ったのかが わからないので検索する事も出来ません。 ピボットテーブルウィザードから ワークシートが挿入されてテーブルを作成する際に どういう操作を行うとこのような構文が出来るのか 教えてください。お願いします。 With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("品番") .PivotItems("(空白)").Visible = False End With With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("仕入先") .PivotItems("(空白)").Visible = False End With With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("品名") .PivotItems("(空白)").Visible = False End With With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("棚番") .PivotItems("(空白)").Visible = False End With With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("番号") .PivotItems("(空白)").Visible = False End With

  • EXCEL VBA ピボットテーブルを使ったデータの一括印刷

    EXCEL VBA ピボットテーブルを使ったデータの一括印刷 複数のピボットで集計したデータやその他のデータをピボットテーブル 以外のセルで関数を使って組み合わせて表やグラフを作成しています。 1つのピボットテーブルのページフィールドで顧客を選択するとその顧客の表と グラフが表示できるようになっています。 そこで1つ1つの顧客を選択して印刷をするのは面倒なので 全ての顧客の表とグラフ(印刷範囲で設定済み)を一括で印刷するマクロを 設定してみました。 EXCEL 2003 シート名 本社 選択するページフィールドのセル B1  フィールド名 名称 -------------------------------------------------------------- Sub 一括印刷 () Worksheets("本社").Activate With ActiveSheet.Range("B1").PivotTable '現在シートのB1セルのピボットテーブルの For Each 各アイテム In .PivotFields("名称").PivotItems '名称フィールドの各アイテム 名称 = 各アイテム.Name 'アイテムの名前を取得 .PivotFields("名称").CurrentPage = 名称 '表示するページを設定 ActiveSheet.PrintOut '印刷 Next End With End Sub -------------------------------------------------------------- 以上で実行すると全て印刷できるのですが、実行時エラー'1004': PivotItemクラスの_Defaultプロパティを設定できません。とエラーになってしまいます。 おそらくアイテム(顧客名の数)が複数あるからでしょうか? CurrentPage=名称の「名称」の部分を変動させればできるのでしょうか? 私のレベルでは、これ以上わかりません。。。 どなたか、教えてください。。。宜しくお願いたします。

  • オートフィルタの一括解除について教えて下さい。

    オートフィルタの一括解除について教えて下さい。 以下のVBAをwebから見つけて、マクロに貼りつけて実行してみましたが、 オートフィルタは一括解除できますが、そのあともオートフィルタの機能は 残しておきたいのですが、どうすればできますか? Sub RemoveFiltersAllWorksheets()  Dim objWorkSheet As Worksheet  For Each objWorkSheet In Worksheets   objWorkSheet.AutoFilterMode = False  Next End Sub 宜しくお願いします。

  • マクロでピボットテーブルを作成するには?

    現在、仕事の関係でエクセルを多用しており、 仕事を楽にするためマクロを勉強しています。 インターネットを駆使して、下記のコードを作ってみたのですが、 【】の範囲で「参照が正しくありません」とエラーが出てしまいます。 どこがおかしいかご教授いただけますでしょうか? 自動記録でベースを作った後、範囲の指定を VBA上で行ったつもりです。 データの集計は「A」シートのA~G列まで、行は不定なので、 「A」シートの一番下までのデータを集計するようにしたいです。 縦に「要素」、内容に「金額」を集計するよう、 ピボットを記録しています。 Sub ピボットを行う() ' Range("A1").Select Range(Selection, Selection.End(xlDown)).Select Range(Selection, Selection.End(xlToRight)).Select 【 ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ "A!Selection.Address").CreatePivotTable TableDestination:="", TableName:= _ "ピボットテーブル1"】 ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) ActiveSheet.Cells(3, 1).Select ActiveSheet.PivotTables("ピボットテーブル1").SmallGrid = False ActiveSheet.PivotTables("ピボットテーブル1").AddFields RowFields:="要素" With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("金額") .Orientation = xlDataField .Caption = "合計 : 金額" .Function = xlSum End With End Sub よろしくお願いいたします。

  • エクセル2010使い方-ピボットテーブル-

    エクセル2010で作成した、ピボットテーブルの 同一項目を選択するにはどうすればよいでしょうか。 以前は項目の始まりにマウスを合わせると、矢印にかわり、 一括して同一項目を選択できたのですが。 行の小計を選択するのをマクロに書くと、こんな感じなのですが。 Sub 小計を選択() ActiveSheet.PivotTables("ピボットテーブル").PivotSelect "行ラベル[All;Total]", _ xlDataAndLabel, True End Sub よろしくお願いいたします。

  • EXCEL2000 ピボットテーブルをマクロで作成

    以下の項目があります。 ID,レースID,芝0・ダ1,平地0・障害1,距離,騎手名,調教師名,人気,単勝オッズ,着順,開催 ピボットテーブルで、騎手別の着順数をSheet2のA1に出力しようと、マクロの自動記録で以下を作りましたが、「コピーまたは移動先のセルの内容を置き換えますか」とエラーになります。 データ数は、増えていくので、可変になるようにお願いします。 Sub Macro3() ' ' Macro3 Macro ' マクロ記録日 : 2013/5/6 ユーザー名 : ' Range("A1").Select Range(Selection, Selection.End(xlDown)).Select Range(Selection, Selection.End(xlToRight)).Select ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ "Sheet1!R1C1:R3785C11").CreatePivotTable TableDestination:=Range("A1"), _ TableName:="ピボットテーブル1" ActiveSheet.PivotTables("ピボットテーブル1").SmallGrid = False ActiveSheet.PivotTables("ピボットテーブル1").AddFields RowFields:="騎手名", _ ColumnFields:="着順" With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("着順") .Orientation = xlDataField .Caption = "データの個数 : 着順" .Function = xlCount End With End Sub

専門家に質問してみよう