今ボタンを押下すると自動的にピポッドテーブルを作成するマクロを作成しています。
【Sample】
Sub ボタン2_Click()
Dim r As Range
With ActiveWorkbook
'With Sheets("案件一覧(DSG)").Select
With .Sheets("案件一覧(DSG)")
Set r = .Range("W2", .Range("B2").End(xlDown))
End With
With .PivotCaches.Add(SourceType:=xlDatabase, SourceData:=r.Address(external:=True))
With .CreatePivotTable(TableDestination:="")
.AddFields RowFields:="製品区分"
With .PivotFields("見込" & Chr(10) & "受注金額")
.Orientation = xlDataField
.Caption = "合計 : 金額"
.Function = xlSum
End With
End With
End With
End With
Set r = Nothing
End Sub
上記のようなピポッドテーブルを新規”サマリー”ワークシートに作成し、同じデータ領域から同じ”サマリー”ワークシートに複数ピポッドテーブルを作成したいと考えています。
A1に作成した後はD1、H1という感じで上記では製品区分別の受注金額をサマリーしていますが、その他業種区分別や担当者別にピポッドテーブルが作成出来たらと思います。
マクロ初心者で今学習で申し訳ありませんが、どなたかご教授よろしくお願いいたします。
以上
No.1ベストアンサー
- 回答日時:
Sub test()
Dim ws As Worksheet
Dim r As Range
With ActiveWorkbook
Set ws = Worksheets.Add
With .Sheets("案件一覧(DSG)")
Set r = .Range("W2", .Range("B2").End(xlDown))
End With
With .PivotCaches.Add(SourceType:=xlDatabase, _
SourceData:=r.Address(external:=True))
With .CreatePivotTable(TableDestination:=ws.Range("A1"))
.AddFields RowFields:="製品区分"
With .PivotFields("見込" & Chr(10) & "受注金額")
.Orientation = xlDataField
.Caption = "合計 : 金額"
.Function = xlSum
End With
End With
With .CreatePivotTable(TableDestination:=ws.Range("D1"))
.AddFields RowFields:="製品区分"
With .PivotFields("見込" & Chr(10) & "受注金額")
.Orientation = xlDataField
.Caption = "合計 : 金額"
.Function = xlSum
End With
End With
With .CreatePivotTable(TableDestination:=ws.Range("H1"))
.AddFields RowFields:="製品区分"
With .PivotFields("見込" & Chr(10) & "受注金額")
.Orientation = xlDataField
.Caption = "合計 : 金額"
.Function = xlSum
End With
End With
End With
End With
Set r = Nothing
Set ws = Nothing
End Sub
一例としてはこんな感じです。
PivotCachesをまず追加して、同じPivotCacheからCreatePivotTableを繰り返せば良いです。
とても分かりやすかったです、丁寧な回答ありがとうございました。
ちなみにピポッドテーブルの集計要素が二つ(例:受注見込月と製品区分)の場合の見込受注金額をサマリーするにはどうすればよいのでしょうか?
五月雨式の質問で申し訳ありませんがよろしくお願いします。
No.2
- 回答日時:
':
With .CreatePivotTable(TableDestination:=ws.Range("A1"))
.AddFields RowFields:=Array("受注見込月", "製品区分")
'"受注見込月"ごとの集計が不要な場合は次行を非コメント
'.RowFields(2).Subtotals(1) = False
With .PivotFields("見込" & vbLf & "受注金額")
.Orientation = xlDataField
.Caption = "合計 : 金額"
.Function = xlSum
End With
End With
':
こんな感じ。
マクロの自動記録からでもわかると思いますが。
早速のご回答ありがとうございます。
.RowFields(2).Subtotals(1) = False を
.RowFields(1).Subtotals(1) = False
にしたらうまくいきました。
まことに申し訳ありませんが、最後のお願いです。
受注見込月が複数年にまたがる可能性が出た為、受注年度を用意し、
ピポッドで絞込みをしようと思い、マクロの記録をやって見ました。
With ActiveSheet.PivotTables("ピボットテーブル66").PivotFields("受注年度")
.Orientation = xlPageField
.Position = 1
End With
上記を付け加えましたがエラーが解消されず困っています。
お手透きの際にでもご教授よろしくお願いします。
No.3
- 回答日時:
':
With .CreatePivotTable(TableDestination:=ws.Range("A1"))
.AddFields RowFields:=Array("受注見込月", "製品区分"), _
PageFields:="受注年度"
.RowFields("受注見込月").Subtotals(1) = False
With .PivotFields("見込" & vbLf & "受注金額")
.Orientation = xlDataField
.Caption = "合計 : 金額"
.Function = xlSum
End With
End With
':
ヘルプも活用して、コードの意味を理解し、基本から押さえたほうが良いですよ。
#Office系ソフトカテゴリへマルチポストになっています。削除依頼を出しておいてください。
多々ご教授ありがとうございました。
お陰で予定より早く作業の目処がたちました。昨日VBAの書籍を購入
しましたのでこれから基本を勉強してみます。
多重投稿は削除しておきました。
不慣れなものでご迷惑をおかけして申し訳ありません。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) Excel VBA メール作成について 本文の中にExcel でコピーした図を上下に2つ 貼り付けを 2 2023/06/14 01:48
- Visual Basic(VBA) ExcelVBAのマクロについて。 9 2022/05/04 14:50
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
- Visual Basic(VBA) QRコード作成マクロについて 3 2022/11/26 16:55
- Visual Basic(VBA) 最終列の右へSUM関数を作成するため下記コードを実行しましたが、最終列「10月28日」が上書きされて 3 2022/12/05 20:32
- Excel(エクセル) VBAのoffsetの動き方について教えてください 3 2022/11/25 23:36
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
受注受付期間とはなんですか?...
-
作番ってどういう意味でしょうか?
-
「失注」の意味を教えてくださ...
-
ACCESSで、DMax関数の条件の書き方
-
「直需」の意味を教えてください
-
Excel 2019 のピボットテーブル...
-
エクセルVBAで5行目からオート...
-
VBAで複数の数式セルを最終行ま...
-
Accessでコードを入れると名前...
-
Accessで数値型にNULLをInsert...
-
ACCESSに同時アクセス(編集)を...
-
Accessでテーブルの値をテキス...
-
Joy To Keyのマウスやキーボー...
-
電話番号のデータの書式を変換...
-
Access:リンクテーブルマネー...
-
アクセスクエリの計算
-
Accessでテーブル名やクエリ名...
-
Accessのクエリでデータの入力...
-
セルの右クリックで出る項目を...
-
【Access】フォームで自動計算...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「直需」の意味を教えてください
-
作番ってどういう意味でしょうか?
-
「失注」の意味を教えてくださ...
-
アクセスで営業日を計算させる...
-
受注受付期間とはなんですか?...
-
Access:サブフォームのレコー...
-
マクロ転記で指定した列の最終...
-
ACCESSで、DMax関数の条件の書き方
-
access 1対1と1対多のテーブ...
-
フォームにレコード数を表示したい
-
VBA でvlookup エラーなどは削...
-
アクセスのクエリで、前回に入...
-
データシート形式のサブフォー...
-
Accessの受注発注について
-
ACCESS 受注数の集計について
-
ACCESS 選択した値を別...
-
excelマクロの処理を早くしたい...
-
ACCESSの同時にデータ入力★初心...
-
ACCESS2000の帳票フォーム詳細...
-
Excelにて複数の受注残を計算す...
おすすめ情報