VBA初心者がピボットテーブルを作成するメモ
ピボットテーブル作成
VBAで集計して別シートに張り付けるを考えたけど、ピボットにしたほうが自分でいろいろと加工できるかなと考え、ピボット作成方法をまとめる。
まずは、ピボット用シート作成のVBA。
'システムID別ピボット用シート作成
Sub CreatePivotTableBySystemId()
'データシート
Dim DataS As Worksheet
'ピボットテーブルを作成するシート
Dim PivotS As Worksheet
'ピボットキャッシュ用変数
Dim PCache As PivotCache
Set DataS = ThisWorkbook.Worksheets("データ")
'「データ」シートからピボットキャッシュを作成
Dim lowRow As Long
lowRow = ActiveWorkbook.Worksheets("データ").Cells(Rows.Count, 2).End(xlUp).Row
Set PCache = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=DataS.Range("B1:E" & lowRow))
'ピボットテーブル用シートを追加
Worksheets.Add
ActiveSheet.Name = "システムID別集計"
Set PivotS = ThisWorkbook.Worksheets("システムID別集計")
'ピボットテーブル用シートにピボットテーブル作成
PCache.CreatePivotTable TableDestination:=PivotS.Range("A1"), TableName:="システムID別集計"
End Sub
次に追加したピボット用シートに項目を設定するVBA。
'システムID別ピボット用シートに項目設定
Sub AddPivotFieldsBySystemId()
'ピボットテーブルがあるシート
Dim PivotS As Worksheet
Set PivotS = ThisWorkbook.Worksheets("システムID別集計")
'ピボットテーブルに行と列フィールドを追加
PivotS.PivotTables("システムID別集計").AddFields ColumnFields:=Array("場所"), RowFields:=Array("システムID")
'ピボットテーブルに値フィールドを追加
PivotS.PivotTables("システムID別集計").AddDataField Field:=PivotS.PivotTables("システムID別集計").PivotFields("時間"), Function:=xlSum
End Sub
Author And Source
この問題について(VBA初心者がピボットテーブルを作成するメモ), 我々は、より多くの情報をここで見つけました https://qiita.com/heihei15408697/items/21acc7e79920d709c82c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .