• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ピボットテーブルの範囲を可変にしたい)

ピボットテーブルの範囲を可変にする方法

このQ&Aのポイント
  • ピボットテーブルの範囲を可変にする方法を教えてください。
  • ピボットテーブルのマクロを作成し、シート名と参照範囲を可変にしたいです。
  • 具体的な記述方法やアドバイスがあれば教えてください。

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

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

範囲を変数に代入しちゃうと楽ちんです。 方法はいくつか考えられますので、よく使われると思う2通りを。 状況によって使い分けてくださいませ。 ・表全体がピボットテーブルのデータソースの場合(右・下に余白無し)  Dim myRange As Range  Set myRange = Worksheets("発注データ20170202").Cells(1, 1).CurrentRegion ・表の一部(A列~G列くらいまで表があるが、A~C列しか使わない)の場合  ※ただし、最下行がデータ終端の時に限る  Dim myRange As Range  Dim LastRow as long  LastRow = Cells(Rows.Count, 1).End(xlUp).Row ' 最下行を取得  Set myRange = Worksheets("Sheet1").Range("A1:C" & LastRow) ここで代入された変数(myRange)をピボットテーブルに渡す感じです。 ・・・あ、失礼。A~C列は固定でしたね。だったら後者のほうが良いかもですね。 Sub たとえば Dim PVSh As Worksheet Dim myRange As Range Dim LastRow As Long     ' 最下行を取得     LastRow = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row     ' A1~C最下行の範囲を変数に代入     Set myRange = Worksheets("Sheet1").Range("A1:C" & LastRow)     ' 蛇足のカレントリージョン     'Set myRange = Worksheets("Sheet1").Cells(1, 1).CurrentRegion     ' シートを追加して変数に代入     Set PVSh = Sheets.Add      ' 以下、ピボットテーブル作成     ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, _                 SourceData:=myRange, _                 Version:=xlPivotTableVersion15).CreatePivotTable _                 TableDestination:=PVSh.Cells(3, 1), _                 TableName:="ピボットテーブル1", _                 DefaultVersion:=xlPivotTableVersion15 (以下省略) こんな感じでできるんじゃないかなぁ、と思いますよ。

sunny_orange
質問者

お礼

ありがとうございます。 教えて頂いた内容で作り直してみます。

関連するQ&A

専門家に質問してみよう