Sub CreatePivotTable()
Dim wsData As Worksheet
Dim wsPivot As Worksheet
Dim rngData As Range
Dim pvtTable As PivotTable
Dim pvtField As PivotField
' データがあるワークシートを指定
Set wsData = Worksheets("Sheet1") ' シート名を適切に変更
' データの範囲を自動で取得
Dim lastRow As Long
Dim lastCol As Long
lastRow = wsData.Cells(wsData.Rows.Count, "A").End(xlUp).Row
lastCol = wsData.Cells(1, wsData.Columns.Count).End(xlToLeft).Column
Set rngData = wsData.Range("A1:" & Cells(lastRow, lastCol).Address)
' 新しいワークシートを作成し、ピボットテーブルを配置
Set wsPivot = Sheets.Add
Set pvtTable = wsPivot.PivotTableWizard(SourceType:=xlDatabase, SourceData:=rngData, TableDestination:=wsPivot.Range("A3"))
' ピボットテーブルにフィールドを追加
Set pvtField = pvtTable.PivotFields("項目1") ' カテゴリの列を適切な列名に変更
pvtField.Orientation = xlRowField
Set pvtField = pvtTable.PivotFields("項目2") ' 金額の列を適切な列名に変更
pvtField.Orientation = xlDataField
' ピボットテーブルのデザインを設定(オプション)
With pvtTable
.InGridDropZones = True
.RowAxisLayout xlTabularRow
End With
End Sub