勘を、頼りに
作って、みました。
色つけは、してませんが
条件書式で、十分かな?
と、ね
かなり、汚いですが
取りあえずは、動く
と、思います。
あぁ!
そうそう
赤字カウントは
動かして、いません
元々、ある
前提です
変えるのは、簡単です。
Option Explicit
Option Base 0
Sub main()
Dim カウント2 As Long, カウント1 As Long, Point1 As Long, Point2 As Long, Point3 As Long, 行数 As Long, エンド行 As Long
With ActiveSheet
Let Point1 = 2
Let Point3 = 16
Let エンド行 = .Cells(2, 2).End(xlDown).Row
Do
Let Point2 = .Cells(Point1 + 1, 3).End(xlDown).Row
Let 行数 = Point2 - Point1
.Range(.Cells(Point1, 2), .Cells(Point2, 4)).Copy .Cells(Point3, 9).Resize(Point2 - Point1 + 1, 3)
If .Cells(Point3, 9).Offset(Point2 - Point1, 0).Value > 行数 _
Then
For カウント1 = 1 To .Cells(Point3, 9).Offset(Point2 - Point1, 0).Value
If カウント1 <> Cells(Point3, 9).Offset(カウント1, 0).Value _
Then
For カウント2 = カウント1 To .Cells(Point3, 9).Offset(カウント1, 0).Value - 1
Call 項分離(.Range(.Cells(Point3 + カウント2, 9), .Cells(Point3 + カウント2, 12)))
Next カウント2
End If
Next カウント1
End If
Let Point1 = Point2 + 1
Let Point3 = Point3 + 19
Loop Until エンド行 < Point1
End With
End Sub
Sub 項分離(ByRef レンジ As Range)
レンジ.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub
補足
WEBデータをあるソフトを使って取り込んだものですので、Webのものとはまた違っています。1つ目の18個はできるのに、2つ目以降ができないというのは何か思い当りませんか?