すぐに役立つエクセルVBAマクロ集 すぐマク
すぐに役立つ Excel VBA マクロ集 Excel VBA Macro
FAQ
Google
 
Home |  What's New! |  Gallery |  Introduction |  Service |  Profile 500連発・組み方講座フォロー Big Color Pallet
[広告]
Excel VBA Macro
Excel DownLoad
© 2007
永井善王.
All RightsReserved.
HappyTech & Co., Ltd.
www.happy500z.com
Excel VBA Macro ・ 値の操作 ・ FAQ
ピボットテーブルレポートを店名フィールドのアイテム別に印刷するには? Click Here! Click Here!
Question 83.2 Excel VBA Borad (掲示板)より Previous Next
初めて質問致します。よろしくお願いします。つい最近マクロを触り始めたばかりの者です。
ピボットテーブルを選択したページフィールドアイテムごとに表示させ、それぞれ印刷するマクロを組みたいのですが、うまくいきません。
「元データ.csv」の「元データ」シート
「元データ.csv」の「元データ」シート

左図のデータから、下図のピボットテーブルレポートを作成してあります。


「Mチェック.xls」の「データ」シート
「Mチェック.xls」の「データ」シート

"ピボットテーブル1" です。








このシートを印刷するために、下記のマクロを作成しました。
Public Sub ピボットテーブル店別印刷()
    ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("店名"). _
        CurrentPage = "オバマ"
    Worksheets("データ").PrintOut
End Sub
投稿画像
「Mチェック.xls」の「店別」シート

上記マクロの
"オバマ" のところの店名を、
抽出済みの別のリスト (左図) から順に読み込んで、
印刷できればと思ったのですが。

不勉強で申し訳ありませんが教えて頂けると幸いです。
Answer   Copyright (C) 2007.7.19 永井善王
「Mチェック.xls」の「データ」シート 「つい最近マクロを触り始めたばかり」ということですが、Excelの知識、特にピボットテーブル関係については造詣が深いようですね。

あなたのご希望は、「ピボットテーブル1」の店名を順に変えて印刷したいのですね。最初は「オバマ」、次は「ツルガ」と。

「Mチェック.xls」の「店別」シートは、そのため、店名を掴むために考えられたのですね。
もちろん、この路線に沿って進むことは可能ですが、店名の一覧は右図のように、「Mチェック.xls」の 「データ」シートの 「店名」フィールドの右側にあるドロップダウン矢印 (▼) をクリックすれば表示されることで分かるように、「店別」シートがなくても処理可能です。

下記のマクロでは、5行目で店名を取得し、6行目でその店名のページを表示しています。
Sub ピボットテーブルレポートを店名フィールドのアイテム別に印刷する()
    Worksheets("データ").Activate
    With ActiveSheet.Range("B3").PivotTable        '現在シートのB3セルのピボットテーブルの
        For Each 各アイテム In .PivotFields("店名").PivotItems '店名フィールドの各アイテム
            店名 = 各アイテム.Name                      'アイテムの名前を取得
            .PivotFields("店名").CurrentPage = 店名     '表示するページを設定
            ActiveWindow.SelectedSheets.PrintPreview    '印刷プレビュー
'            ActiveSheet.PrintOut                        '印刷
        Next
    End With
End Sub
あなたは、マクロについても向上心がお有りで努力されているようですから、クドクドとした解説は控えます。 まずは、上記マクロをじっくりと解明してみてください。
そして、店名があってもデータがない場合の処理とか、時間があったら探求されるとよろしいかと思います。
結果をお知らせください。


サンプルブックのダウンロードは ここをクリック  (YNxv9887_Pivot.lzh 18KB)
※ 一旦、ハードディスクに保存し、解凍してから実行してください。
ありがとうございました
さっそくマクロを修正し、無事実行することができました。
For...Each...Next や PivotItems などもいじくり回してはいたのですが、こうやって使うものなのかと勉強になりました(特に.Nameの記載)。
以前の職場ではピボットテーブルを使うことが多く慣れているため、今後は本当に役にたてられそうです。
「ExcelVBAマクロ組み方講座」も購入しましたので、これからも自分で工夫してみたいと考えています。
(データなしのError回避もうまく行きました)