![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
こんばんは。マクロの自動記録を使って、ピボットテーブルを作成したのですが、記録した時のシート名とデータ範囲で記録されてしまいます。アクティブシートのデータがある範囲をピボットテーブルにしたい時は、どうすれば良いでしょうか?
以下のコードが自動記録で作成したコードです。
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"シート名!R1C1:R1000C30").CreatePivotTable TableDestination:= _
"", TableName:="ピボットテーブル2", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("商品番号")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("商品名 ")
.Orientation = xlRowField
.Position = 2
End With
Range("A9").Select
ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("商品番号").Subtotals = Array( _
False, False, False, False, False, False, False, False, False, False, False, False)
ActiveSheet.PivotTables("ピボットテーブル2").AddDataField ActiveSheet.PivotTables( _
"ピボットテーブル2").PivotFields("数量 "), "データの個数 / 数量 ", xlCount
With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("発送日 ")
.Orientation = xlPageField
.Position = 1
End With
Range("A1").Select
ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("発送日 ").Orientation = _
xlHidden
With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("希望時期")
.Orientation = xlColumnField
.Position = 1
End With
No.2ベストアンサー
- 回答日時:
空白行と空白列で囲まれたセル範囲を取得できる[CurrentRegion プロパティ]を使う事もできます。
参考まで。
Sub try()
Dim r As Range
Set r = ActiveSheet.Range("A1").CurrentRegion
With ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, _
SourceData:=r.Address(external:=True) _
).CreatePivotTable(TableDestination:="")
.AddFields RowFields:=Array("商品番号", "商品名 "), _
ColumnFields:="希望時期", _
PageFields:="発送日 "
.PivotFields("商品番号").Subtotals(1) = False
With .PivotFields("数量 ")
.Orientation = xlDataField
.Caption = "データの個数 / 数量 "
.Function = xlCount
End With
End With
Set r = Nothing
End Sub
類似Q&Aとしては
http://oshiete1.goo.ne.jp/qa2926805.html
ここなども参考になるかもしれません。
No.1
- 回答日時:
以下は私が仕事で使っている自動化の一部です
HANI でC1から列AN(最右)の一番下を指定しています。一番下を見る列はJです。これを応用すればデータのある範囲を指定できるはずです。
HANI = "シート名!C1:AN" & Trim(Str(Range("J2").End(xlDown).Row))
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=HANI).CreatePivotTable _
TableDestination:="", TableName:="ピボットテーブル1", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.PivotTables("ピボットテーブル1").AddFields RowFields:="集計行名", ColumnFields:="集計列名"
With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("集計名")
.Orientation = xlDataField
.Caption = "集計"
.Function = xlSum
End With
Application.CommandBars("PivotTable").Visible = False
ActiveWorkbook.ShowPivotTableFieldList = False
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) マクロで最終行を取得してコピーしたい 3 2022/04/06 19:07
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
- Excel(エクセル) エクセルマクロで教えてください 2 2022/05/04 09:07
- Excel(エクセル) excel ピポットテーブルの更新について 1 2022/05/13 16:12
- Visual Basic(VBA) 最終列の右へSUM関数を作成するため下記コードを実行しましたが、最終列「10月28日」が上書きされて 3 2022/12/05 20:32
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) 追記する列を増やしたい 2つのデータを検索・照合して元データにないデータを下記マクロで商品名を追記し 9 2022/10/05 10:50
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/10 14:24
- Visual Basic(VBA) 改行ごとに行を追加し、数量を分割 4 2023/07/11 16:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで特定の色の数字だけ...
-
【エクセル】オートフィルタで...
-
ピボットテーブルの自動計算を...
-
VBAで重複する項目を1つにまと...
-
excelで集計の合計を降順に並べ...
-
EXCELで増減率を計算したいです
-
エクセル 関数を使った横方向の...
-
ピボットを更新すると数式が入...
-
フィルタをしても最下行を常に...
-
アンケートの集計
-
Excelで日別に入力されたデータ...
-
DATEDIFでマイナス表示をさせたい
-
エクセルで円グラフに引き出し...
-
エクセルで文字が白くなる
-
エクセルの主軸と第2軸の0を合...
-
エクセルで、時間 0:00を表示...
-
エクセルで長い行を5行ごとに1...
-
エクセルの散布図の点に名前を...
-
Excelで並び替え後にア行...
-
excelグラフでデータテーブルを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【エクセル】オートフィルタで...
-
エクセルで特定の色の数字だけ...
-
ピボットテーブルでは時間の表...
-
フィルタをしても最下行を常に...
-
VBAで重複する項目を1つにまと...
-
ピボットの集計方法「合計」初...
-
アンケートの集計
-
ピボットを更新すると数式が入...
-
エクセルの小計を自動的に色づ...
-
エクセル、リソース不足エラー...
-
EXCELで増減率を計算したいです
-
EXCEL 重複データの集計の仕方
-
excelで集計の合計を降順に並べ...
-
VLOOKUP関数とCOUNT関数等の組...
-
ピボットテーブルで同じデータ...
-
常にタイトル行と合計行を表示...
-
Excelの集計結果だけをコピー貼...
-
いい機能だけど、毎回めんどく...
-
EXCELで0を除いた平均値...
-
エクセル 日付(年月日)の合...
おすすめ情報