|
初めまして。
Excel VBAでピボットテーブルを自動化する方法を教えていただきたいです。
何故か一部しかピボットテーブルが表示されずに「オブジェクトが必要です」というエラーが出ました。
デバックをしたところ、下の方に矢印を入れた".Position=1"が黄色くなりました。
おそらくコードの間違いがあると思いますが、過去ログ等を見ても分からなかったので、
どのような間違いがあるのか分かる方はできれば教えていただきたいです。
Sub Macro2()
'
' Macro2 Macro
'
'
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Book1!R1C1:R21C5", Version:=xlPivotTableVersion12).CreatePivotTable _
TableDestination:="Book1!R23C8", TableName:="ピボットテーブル1", DefaultVersion _
:=xlPivotTableVersion12
Sheets("Book1").Select
Cells(23, 8).Select
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollRow = 2
ActiveWindow.ScrollRow = 3
ActiveWindow.ScrollRow = 4
ActiveWindow.ScrollRow = 5
ActiveWindow.ScrollRow = 6
ActiveWindow.ScrollRow = 7
ActiveWindow.ScrollRow = 8
With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("氏名")
.Orientation = xlPageField
.Position = 1
End With
With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("氏名")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("ピボットテーブル1").AddDataField ActiveSheet.PivotTables( _
"ピボットテーブル1").PivotFields("性別"), "データの個数 / 性別", xlCount
With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("都道府県")
.Orientation = xlColumnField
.Position = 1
End With
ActiveSheet.PivotTables("ピボットテーブル1").AddDataField ActiveSheet.PivotTables( _
"ピボットテーブル1").PivotFields("都道府県"), "データの個数 / 都道府県", xlCount
ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("データの個数 / 都道府県"). _
Orientation = xlHidden
With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("年齢")
.Orientation = xlColumnField
.Position = 1
End With
ActiveSheet.PivotTables("ピボットテーブル1").AddDataField ActiveSheet.PivotTables( _
"ピボットテーブル1").PivotFields("年齢"), "合計 / 年齢", xlSum
ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("合計 / 年齢").Orientation = _
xlHidden
ActiveWindow.ScrollRow = 9
ActiveWindow.ScrollRow = 10
ActiveWindow.ScrollRow = 11
ActiveWindow.ScrollRow = 12
ActiveWindow.ScrollRow = 13
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 4
Range("I23").Select
ActiveWindow.ScrollRow = 12
ActiveWindow.ScrollRow = 11
ActiveWindow.ScrollRow = 10
ActiveWindow.ScrollRow = 9
ActiveWindow.ScrollRow = 8
ActiveWindow.ScrollRow = 7
ActiveWindow.ScrollRow = 6
ActiveWindow.ScrollRow = 5
ActiveWindow.ScrollRow = 4
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollRow = 5
ActiveWindow.ScrollRow = 6
ActiveWindow.ScrollRow = 7
ActiveWindow.ScrollRow = 8
ActiveWindow.ScrollRow = 9
ActiveWindow.ScrollRow = 10
ActiveWindow.ScrollRow = 11
ActiveWindow.ScrollRow = 12
ActiveWindow.ScrollRow = 13
ActiveWindow.ScrollRow = 12
ActiveWindow.ScrollRow = 11
ActiveWindow.ScrollRow = 10
ActiveWindow.ScrollRow = 9
ActiveWindow.ScrollRow = 8
ActiveWindow.ScrollRow = 7
ActiveWindow.ScrollRow = 6
ActiveWindow.ScrollRow = 5
ActiveWindow.ScrollRow = 4
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollRow = 5
ActiveWindow.ScrollRow = 6
ActiveWindow.ScrollRow = 7
ActiveWindow.ScrollRow = 8
ActiveWindow.ScrollRow = 9
ActiveWindow.ScrollRow = 10
ActiveWindow.ScrollRow = 11
ActiveWindow.ScrollRow = 12
With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("データの個数 / 性別")
.Orientation = xlPageField
⇒ .Position = 1
End With
With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("性別")
.Orientation = xlColumnField
.Position = 1
End With
ActiveWindow.ScrollRow = 13
ActiveSheet.PivotTables("ピボットテーブル1").AddDataField ActiveSheet.PivotTables( _
"ピボットテーブル1").PivotFields("年齢"), "合計 / 年齢", xlSum
With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("電話番号")
.Orientation = xlPageField
.Position = 1
End With
With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("都道府県")
.Orientation = xlPageField
.Position = 1
End With
End Sub
|
|