[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロ記録の整理』(ks)
ピボットテーブルを使いマクロ記録してみたのですが
最下行(不特定)の設定と内容の整理したいのですが
お解りの方アドバイスお願いします。
Sub Macro4()
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"集計A4横!R3C2:R7C8", Version:=6).CreatePivotTable TableDestination:= _
"集計A4横!R4C15", TableName:="ピボットテーブル8", DefaultVersion:=6
Sheets("集計A4横").Select
Cells(4, 15).Select
ActiveWorkbook.ShowPivotTableFieldList = True
ActiveSheet.PivotTables("ピボットテーブル8").AddDataField ActiveSheet.PivotTables( _
"ピボットテーブル8").PivotFields("グループ"), "合計 / グループ", xlSum
ActiveSheet.PivotTables("ピボットテーブル8").AddDataField ActiveSheet.PivotTables( _
"ピボットテーブル8").PivotFields("定価(単価)"), "合計 / 定価(単価)", xlSum
ActiveSheet.PivotTables("ピボットテーブル8").AddDataField ActiveSheet.PivotTables( _
"ピボットテーブル8").PivotFields("定価(合計)"), "合計 / 定価(合計)", xlSum
ActiveSheet.PivotTables("ピボットテーブル8").AddDataField ActiveSheet.PivotTables( _
"ピボットテーブル8").PivotFields("金額"), "合計 / 金額", xlSum
ActiveSheet.PivotTables("ピボットテーブル8").PivotFields("合計 / 定価(単価)").Orientation = _
xlHidden
With ActiveSheet.PivotTables("ピボットテーブル8").PivotFields("グループ")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("ピボットテーブル8").PivotFields("グループ")
.Orientation = xlPageField
.Position = 1
End With
With ActiveSheet.PivotTables("ピボットテーブル8").PivotFields("グループ")
.Orientation = xlColumnField
.Position = 2
End With
With ActiveSheet.PivotTables("ピボットテーブル8").PivotFields("グループ")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("ピボットテーブル8").PivotFields("グループ").Orientation = xlHidden
With ActiveSheet.PivotTables("ピボットテーブル8").PivotFields("グループ")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("ピボットテーブル8").DataPivotField.Orientation = xlHidden
ActiveSheet.PivotTables("ピボットテーブル8").AddDataField ActiveSheet.PivotTables( _
"ピボットテーブル8").PivotFields("金額"), "合計 / 金額", xlSum
ActiveSheet.PivotTables("ピボットテーブル8").AddDataField ActiveSheet.PivotTables( _
"ピボットテーブル8").PivotFields("定価(合計)"), "合計 / 定価(合計)", xlSum
Range("P5:Q8").Select
Selection.Style = "Comma [0]"
Range("Q12").Select
End Sub
< 使用 Excel:Excel2016、使用 OS:Windows10 >
Dim pvt As PivotTable
Set pvt = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"集計A4横!R3C2:R7C8", Version:=6).CreatePivotTable(TableDestination:= _
"集計A4横!R4C15", TableName:="ピボットテーブル8", DefaultVersion:=6)
などとして、
変数 pvtで書き換えるとスッキリする、くらいでしょうか。
(γ) 2017/03/29(水) 21:04
よろしくお願いします。
帳票は以下の通りです
3行目見出し行
A列は空きです
A B C D・・F G H 3 4 B4ここからデータ入力 5 6 但しF列 H列は数式が入っています。 B列入力済みで最下行としそこから H列までをデータ取得範囲とする。 以上説明が下手かもしれませんが概要です。 (ks) 2017/03/30(木) 01:28
Set rng = Range("B3", Cells(Rows.Count, "H").End(xlUp))
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= rng, _
以下省略
など。
Sheetを複数使っているなら指定しないといけませんが、
Activesheetだけなら指定する必要もないと思います。
(γ) 2017/03/30(木) 07:09
>但しF列 H列は数式が入っています。
330行目までしたフィルで数式です。ピボットテーブルの場合
この範囲(空白)は関係ないのでしょうか?今回のケースの場合
B列を含むデータ記入済み行は7行目までです。
ちなみに7行目まで範囲の指定(数式抜き)方法はありますか?
よろしくお願いします。
Sub test2()
Dim Rng As Range
Set Rng = Range("B3", Cells(Rows.Count, "H").End(xlUp))
MsgBox Rng.Address
End Sub
(ks) 2017/03/30(木) 12:33
(マナ) 2017/03/30(木) 23:36
(ks) 2017/03/31(金) 00:47
(γ) 2017/03/31(金) 07:10
(ks) 2017/03/31(金) 09:04
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.