- ベストアンサー
エクセルのピボットテーブルを最終行から2行目に入れる方法
- エクセルのマクロを使用してピボットテーブルを作成し、最終行から2行目に項目を入れて新しいピボットテーブルを貼り付ける方法について教えてください。
- 現在は2つ目のピボットテーブルを「A25」に貼り付けるように設定していますが、1つ目のピボットテーブルの大きさが毎回変化するため、見た目がきれいではありません。
- 「貼り付け」シートのデータを元にピボットテーブルを作成し、「集計表」シートに最終行から2行目に新しいピボットテーブルを貼り付ける方法をお教えください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
ピボットテーブルの貼り付け先として、 変動するデータ範囲の取得方法を知りたいという事ですね。 ピボットテーブル1作成後、最終行を取りたいなら、 Endプロパティを使うのが最もオーソドックスかと思います。 (作成前に集計表シートをクリアしておく事が前提) こちらのページが解かり易いので参考にしてください。 http://www.niji.or.jp/home/toru/notes/8.html 実際のサンプルは以下。ピボット作成はテキトーです。 Sub test() Dim r As Range With ActiveWorkbook Set r = Sheets("集計表").Range("A1") r.Value = "ピボットテーブル1" With .PivotCaches.Create(SourceType:=xlDatabase, _ SourceData:="貼り付け!R2C15:R300C19") _ .CreatePivotTable(TableDestination:=r.Offset(1), _ TableName:=r.Value) .AddFields RowFields:="Field1", _ ColumnFields:="Field2" .AddDataField .PivotFields("Field3"), "Field3計", xlSum End With '2コ目のピボットテーブル With Sheets("集計表") 'シート最大行から[Ctrl]+[↑]で上に跳んで、止まったセルの2コ下。 Set r = .Cells(.Rows.Count, 1).End(xlUp).Offset(2) End With r.Value = "ピボットテーブル2" With .PivotCaches.Create(SourceType:=xlDatabase, _ SourceData:="貼り付け!R2C15:R300C19") _ .CreatePivotTable(TableDestination:=r.Offset(1), _ TableName:=r.Value) .AddFields RowFields:="Field1", _ ColumnFields:="Field2" .AddDataField .PivotFields("Field3"), "Field3計", xlSum End With End With Set r = Nothing End Sub
お礼
まだまだVBAを理解できていないのですが、 何とかマクロを完成させることが出来ました!! どうもありがとうございました。