こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルで表を展開するマクロを作りたい

こんにちは。
エクセルで表を展開したいのですがマクロが作れません。
どなたか詳しい方教えて下さい。

    A   B   C  D
1  1,2,3  abc  def  ghi

   A   B   C  D
1  1 abc  def  ghi
2   2  abc  def  ghi
3  3  abc  def  ghi
というように展開したいです。
10列目くらいまで対応したマクロが作りたいです。
Sub test() 'この行から
Dim i, j, k As Long
Dim myArray As Variant
For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
If Not Cells(i, 1) Like "*" & "," & "*" Then i = i - 1
myArray = Split(Cells(i, 1), ",")
k = UBound(myArray)
Rows(i + 1 & ":" & i + k).Insert
For j = 0 To k
Cells(i + j, 1) = myArray(j)
Next j
Next i
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(i, 2) = "" Then
Cells(i, 2) = Cells(i - 1, 2)
End If
Next i
Columns("A:B").AutoFit
End Sub 'この行まで

これにどう付け足せばいいでしょうか?
どうかご教授お願い致します。

投稿日時 - 2011-08-30 10:47:05

QNo.6977274

すぐに回答ほしいです

質問者が選んだベストアンサー

こんにちは。全然詳しくないのですが・・

ご質問の内容ですが、

(1)A1セルに入っているテキストをカンマで区切った数値を、
 A列に入力していく。

(2)A列に入力されたセルの数にしたがって、B1・C1・D1
 のテキストを、B列・C列・D列に入れていく。

こういうことでいいのでしょうか。

お作りになったものとだいぶ違いますが、私は下記のとおりに
しました。

Sub test()

Dim ax As String 'A1セルに入っているテキストを代入するための変数
Dim num As Integer, i As Integer '個数や回数を代入するための変数
Dim arr As Variant '配列を格納
Dim tex As String '文字列を代入するための変数

'A1セルに入っているテキストをA列に展開

Range("A1").Select
ax = ActiveCell.Formula

arr = Split(ax, ",")

For i = 0 To UBound(arr)
num = i + 1
Cells(num, 1).Value = arr(i)
Next i

'B~D列を展開

For i = 1 To 3

ActiveCell.Offset(, 1).Select
tex = ActiveCell.Formula

Selection.Resize(num, 1).Select
Selection.Formula = tex
Selection.Resize(1, 1).Select

Next i

End Sub

もしも勘違いだったらすみません。

投稿日時 - 2011-08-30 14:40:47

お礼

こんにちは!!
完璧でしたーーーーー♪
ほんとに助かりました!!
どうもありがとうございました☆

投稿日時 - 2011-08-30 14:58:51

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問