| 
    
     |  | ▼マリモ さん: 
 元シートを上書きしますので、実行前にシートの内容は別シートにコピーしておかれたほうが
 よろしいかと。
 結果を別シートに転記することも、もちろんできますよ。
 
 Sub Sample()
 Dim n As Long
 Dim v() As Variant
 Dim c As Range
 Dim x As Long
 Dim k As Long
 Dim i As Long
 
 With Sheets("Sheet1")  '元のシート
 n = WorksheetFunction.Sum(.Columns("C"))  '展開必要行数(事業所数合計)
 ReDim v(1 To n, 1 To 2)           '展開用配列初期化
 For Each c In .Range("A2", .Range("A" & .Rows.Count).End(xlUp))
 x = c.Offset(, 2).Value       '事業所の数
 For k = 1 To x
 i = i + 1
 v(i, 1) = c.Value        '町名
 v(i, 2) = c.Offset(, 1).Value  '産業の数
 Next
 Next
 .Cells.ClearContents
 .Range("A1:C1").Value = Array("ID", "町名", "産業") 'あたらしいタイトル行
 .Range("B2").Resize(UBound(v, 1), UBound(v, 2)).Value = v
 .Range("A2").Value = 1
 .Range("B2", .Range("B" & Rows.Count).End(xlUp)).Offset(, -1).DataSeries
 End With
 End Sub
 
 |  |