回答編集履歴

1

追記

2020/02/03 05:17

投稿

mattuwan
mattuwan

スコア2163

test CHANGED
@@ -73,3 +73,77 @@
73
73
  興味があればいってくれれば、サンプル書きます。
74
74
 
75
75
  参考になれば。
76
+
77
+
78
+
79
+ ---
80
+
81
+
82
+
83
+ 小計機能でキーブレークの箇所に小計行を挿入し、
84
+
85
+ ジャンプ機能で分かれたデータを特定し、
86
+
87
+ 集まり毎に転記するサンプル
88
+
89
+
90
+
91
+ ```ExcelVBA
92
+
93
+ Sub test()
94
+
95
+ Dim Rng As Range
96
+
97
+ Dim a As Range
98
+
99
+ Dim i As Long
100
+
101
+
102
+
103
+ 'キーブレーク箇所に小計行挿入
104
+
105
+ With Worksheets(1).Cells(1)
106
+
107
+ .Subtotal GroupBy:=1, Function:=xlCount, TotalList:=2
108
+
109
+ With .CurrentRegion
110
+
111
+ Set Rng = Intersect(.Columns(2), .Offset(1))
112
+
113
+ End With
114
+
115
+ End With
116
+
117
+
118
+
119
+ 'キー毎(小計行は数式が入っているので定数のセルだけに特定)にコピペ
120
+
121
+ For Each a In Rng.SpecialCells(xlCellTypeConstants).Areas
122
+
123
+ i = i + 1
124
+
125
+ With Worksheets(2).Cells(1)
126
+
127
+ a.Copy .Cells(2, i)
128
+
129
+ .Cells(1, i).Value = a.Cells(1, 0).Value
130
+
131
+ End With
132
+
133
+ Next
134
+
135
+
136
+
137
+ '小計行削除
138
+
139
+ Rng.CurrentRegion.RemoveSubtotal
140
+
141
+ End Sub
142
+
143
+ ```
144
+
145
+ 必要ならば並び替えも行ってください。
146
+
147
+ 列方向の並び替えもエクセルでできる(はず。)。
148
+
149
+ 個人的にはこっちの方が、考えるのが気楽かな。。。