|
|
| Excel VBA Macro ・ 値の操作 ・ FAQ |
|
複数シートのデータからピボットテーブルを作成するには?
|
|
|
|
Question 82.5 |
Excel VBA Borad (掲示板)より |
 |
 |
|
|
マクロ初心者です。複数のシートからピボットテーブルを作成するマクロがどうしても作れません。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
うまく解決しないようでしたら図の原データで試してみて、結果を書き込んでネ。
|
|
|
修正ありがとうございます! 原データも作って下さりありがとうございます!
修正していただいたコードを見た時、こんなにすっきりするものなのか! ととても感激し、また自分の修正ではちんぷんかんぷんだったコードの意味も、ほんの少しですが推測できるようになりました! 本当にありがとうございます!
|
|
|
|
|