メインはこちら↓
これは、メインがクソ長いので分けたおまけである。
おまけ内容:連番ならfor文で「もっと短く…!もっと短くなれよ…!!」という例
前回も載せているが、一応念の為今回も画像を載せておく。
元となるデータ↓
これが、
こうなる。
Sub pivotaroomake()
Dim pivotaroarea As Range
Set pivotaroarea = Sheets("Sheet3").Range("A2").CurrentRegion
Sheets.Add.Name = ("pivotaro")
ActiveWorkbook.PivotCaches.Create(xlDatabase, SourceData:=pivotaroarea).CreatePivotTable TableDestination:="pivotaro!R3C1", TableName:="ピボタロ"
With ActiveSheet.PivotTables("ピボタロ")
.PivotFields("会社").Orientation = xlRowField
.PivotFields("業者").Orientation = xlRowField
For i = 1 To 5
.AddDataField .PivotFields("A-" & i), "A" & i & "項目", xlAverage
.PivotFields("A" & i & "項目").NumberFormat = "0.0"
Next
End With
Dim pf As PivotField
On Error Resume Next
For Each pf In ActiveSheet.PivotTables("ピボタロ").PivotFields
pf.Subtotals(1) = True
pf.Subtotals(1) = False
Next
On Error GoTo 0
ActiveSheet.PivotTables("ピボタロ").RowAxisLayout xlTabularRow
End Sub
以上。
とにかく短くするためだけ、それだけだ。
フィールド名の一部が連番になっているなら、やるとなんかスッキリしていいので、やることをおすすめする。