複数シートのデータからピボットテーブルを作成するには?

Question 82.5 Excel VBA Borad (掲示板)より Previous Next
マクロ初心者です。複数のシートからピボットテーブルを作成するマクロがどうしても作れません。1枚のシートからのピボットは作れるようになりましたが、複数シートからのピボットは、自動記録のコードのどこを修正すればいいのかまったくわかりません・・・拙い質問とは思いますが、どのようにすればいいのかアドバイスいただければと思います。よろしくお願いいたします。
お伝えする情報が少なく、申し訳ございませんでした。 自動記録ではこのようになっておりました。
Sub Sumple()
    Sheets("コード集計").Cells.Clear
    ActiveSheet.PivotTableWizard SourceType:=xlConsolidation, SourceData:= _
        Array(Array("受注!R1C1:R6C2", "受注"), Array("発注!R1C1:R3C2", "発注")), _
        TableDestination:="[取引高管理表.xls]コード集計!R1C1", _
        TableName:="ピボットテーブル1"
    ActiveSheet.PivotTables("ピボットテーブル1").PivotField. _
        PivotItems("合計 / 値").Orientation = xlRowField
End Sub
上記の内容を、本やHPで調べながら自分なりに修正してみたのですが、なかなかうまくいきませんでした。行いたい内容としては、取引額を会社コードで管理しており、それを各コードあたりいくらかという総計を求め、コード集計というシートに一覧表としてまとめたい、ただそれだけの内容になります。ピボットを使用しない場合でも2枚のシートを統合できるのなら、とも思いましたが、うまくできませんでした。 どうぞよろしくおねがいします。
Answer   Copyright (C) 2007.6.22 永井善王
原データの様子が分からないので一部推定です。

1. 下から3行目と2行目のコードは不要と思われます。

投稿画像 2. ピボットテーブルの配置場所を「取引高管理表.xls」の「コード集計」シートのA1セルと指定していますが、集計対象データが異なるブックに入っているならば、操作対象のブックを明確に指示する必要があります。 (同一ブックの場合は、TableDestination:="コード集計!R1C1" のようにブック名の指定をしない)

修正済みコードは下記のとおりです。(集計対象データは「原データ.xls」に入っている前提)
Sub Sumple()
    Workbooks("取引高管理表.xls").Activate
    Sheets("コード集計").Cells.Clear
    Workbooks("原データ.xls").Activate
    ActiveSheet.PivotTableWizard SourceType:=xlConsolidation, SourceData:= _
    Array(Array("受注!R1C1:R6C2", "受注"), Array("発注!R1C1:R3C2", "発注")), _
    TableDestination:="[取引高管理表.xls]コード集計!R1C1", _
        TableName:="ピボットテーブル1"
End Sub
うまく解決しないようでしたら図の原データで試してみて、結果を書き込んでネ。
ありがとうございました
修正ありがとうございます! 原データも作って下さりありがとうございます!
修正していただいたコードを見た時、こんなにすっきりするものなのか! ととても感激し、また自分の修正ではちんぷんかんぷんだったコードの意味も、ほんの少しですが推測できるようになりました!
本当にありがとうございます!

 

Excel VBA Macro