|
▼マリモ さん:
一応、ループをコンパクトにしたコードもアップしておきます。
(それと、このケースなら、関数の達人さんは、きっと関数でえいやっとやると思います)
Sub Sample2()
Dim v() As Variant
Dim k As Long
Dim c As Range
Dim x As Long
Dim z As Long
With Sheets("Sheet1")
ReDim v(1 To .Rows.Count, 1 To 4) '転記用配列
'A2からA列のセルを1つずつ抽出
For Each c In .Range("A2", .Range("A" & .Rows.Count).End(xlUp))
For x = 1 To 3
k = k + 1
v(k, 1) = c.Value
v(k, 2) = .Range("B1").Offset(, (x - 1) * 2).Value
v(k, 3) = c.Offset(, (x - 1) * 2 + 1).Value
v(k, 4) = c.Offset(, (x - 1) * 2 + 2).Value
Next
Next
.Cells.ClearContents
.Range("A1:D1").Value = Array("町名", "産業", "事業所", "従業員") '新しいタイトル行
.Range("A2").Resize(k, UBound(v, 2)).Value = v
End With
MsgBox "作成完了"
End Sub
|
|