| 
    
     |  | こんにちは。かみちゃん です。 
 >2)1.は、この通り8にしたいのですが、この集計結果8を3.の行に表示したい
 >  ので、上記のダブルクリックでの設定でやろうとしましたが駄目でした。
 >  そこで、手集計(sum関数)で入れたのですが、これでは毎回位置が変わるので
 >  自動記録では今回のみにしか通用しない
 
 その通りです。やっと気づいていただけましたか?
 
 自動記録で100%できるとは、誰も申し上げていません。
 多少の修正は必要になります。
 
 ですから、今回のみにしか通用しなくても自動記録はできるはずです。
 その記録したコードをどのようなデータでも対応できるように修正すればいいわけ
 で、修正の仕方がわからなければ、元データと期待している結果と、現在得られている
 結果をきちんと説明すれば、いくらでもアドバイスはさせていただきます。
 
 しかし、今回の場合、毎回、「手集計(sum関数)」をしているのですか?
 本当は、手作業の手順は確立されているのではないのですか?
 それとも、手間がかかるのは、この部分で、手順もあやふやなのではないでしょうか?
 
 つまり、ピボットテーブルの作り方が間違っていると思います。
 
 あまり長々とスレッドを伸ばすも、本意ではないので、[59005]で提示された
 コードのうち、最後の
 
 With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("出荷数量")
 .Orientation = xlRowField
 .Position = 3
 End With
 ActiveSheet.PivotTables("ピボットテーブル2").AddDataField ActiveSheet.PivotTables( _
 "ピボットテーブル2").PivotFields("商品名"), "データの個数 / 商品名", xlCount
 ActiveWindow.SmallScroll Down:=-3
 
 を削除して、以下のコードを最後に追加してください。
 
 With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("出荷数量")
 .Orientation = xlDataField
 .Function = xlSum '合計
 .Position = 1
 End With
 
 With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("商品名")
 .Orientation = xlDataField
 .Function = xlCount 'データの個数
 .Position = 2
 End With
 
 With ActiveSheet.PivotTables("ピボットテーブル2").DataPivotField
 .Orientation = xlColumnField
 .Position = 1
 End With
 
 '  '「特級」を先頭に移動
 '  ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("等級").PivotItems("特級"). _
 '    Position = 1
 
 '「倉庫」ごとの集計をしない
 ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("倉庫").Subtotals = Array( _
 False, False, False, False, False, False, False, False, False, False, False, False)
 Range("C6").Select
 '列と行の総計を非表示
 With ActiveSheet.PivotTables("ピボットテーブル2")
 .ColumnGrand = False
 .RowGrand = False
 End With
 
 '項目名の変更
 ActiveSheet.PivotTables("ピボットテーブル2").DataPivotField.PivotItems("合計 / 出荷数量"). _
 Caption = "出荷数"
 ActiveSheet.PivotTables("ピボットテーブル2").DataPivotField.PivotItems( _
 "データの個数 / 商品名").Caption = "行数"
 
 ActiveWorkbook.ShowPivotTableFieldList = False
 Application.CommandBars("PivotTable").Visible = False
 
 '列全体を指定している場合、「(空白)」が集計するため非表示にする
 With ActiveSheet.PivotTables("ピボットテーブル2").PivotFields("倉庫")
 .PivotItems("(空白)").Visible = False
 End With
 
 MsgBox "データを集計しました"
 
 これらのコードは、ピボットテーブルの一般操作を「マクロの記録」で記録しただけです。
 
 今一度、ピボットテーブルの一般操作をご確認ください。
 
 |  |