|
こんにちは。かみちゃん です。
>この表の1列目の値が”カンマ”で区切ってあります。カンマの数は決まっていません。
>”カンマ”の次の値を列の次のセルに入れてあげて、項目1以降の値をそのままIDの行に反映させてあげたい
まず、質問の仕方がすばらしいと感じました。
処理前のデータと処理後の期待している結果がハッキリわかりました。
そこで、以下のようなコードでできると思います。
元のシートをアクティブにすると、Sheet2に結果を出力します。
なお、元のシートは、IDがA列、項目1からはB列以降に入れてあるものとして、
B列からIV列までのデータをコピーするという方法を使っています。
Option Explicit
Sub Macro1()
Dim RowNo As Long
Dim RowNo2 As Long
Dim strID As Variant
Dim i As Integer
RowNo = 2
RowNo2 = 2
Do Until Cells(RowNo, 1).Value = ""
strID = Split(Cells(RowNo, 1).Value, ",")
For i = 0 To UBound(strID)
'Sheet2に結果を出力する
With Sheets("Sheet2").Cells(RowNo2, 1)
.Value = "'" & strID(i)
Range("B" & RowNo & ":" & "IV" & RowNo).Copy Destination:=.Offset(, 1)
End With
RowNo2 = RowNo2 + 1
Next
RowNo = RowNo + 1
Loop
MsgBox "処理を終了しました。"
End Sub
|
|