
こんにちは。
エクセルで表を展開したいのですがマクロが作れません。
どなたか詳しい方教えて下さい。
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 'この行まで
これにどう付け足せばいいでしょうか?
どうかご教授お願い致します。
No.1ベストアンサー
- 回答日時:
こんにちは。
全然詳しくないのですが・・ご質問の内容ですが、
(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
もしも勘違いだったらすみません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
- Visual Basic(VBA) このマクロの説明文を教えてほしいです。 1 2023/01/12 09:17
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) A列B列C列 3 2023/04/26 18:11
- Visual Basic(VBA) 【VBA】特定のワードが入っている行全体を塗りつぶしたい 4 2022/04/20 15:22
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) ExcelVBAのマクロについて。 9 2022/05/04 14:50
- Visual Basic(VBA) vba 重複データ合算 5 2023/07/05 18:55
- Visual Basic(VBA) VBA 行削除した連番 4 2023/06/27 16:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの使い方
-
エクセルのウィンドウ固定と列...
-
指定した文字を自動で変換する
-
関数 vlookap
-
エクセル関数式を教えてください。
-
セルを結合一括コピーは出来ま...
-
Excel2013のセル入力について
-
VBA 範囲指定してコピー&ペー...
-
Excelで隣のセルが空白の場合に...
-
エクセルで表を展開するマクロ...
-
名簿の作り方 姓名が一文字...
-
かぶったセルの表示方法を教え...
-
Excelの列の中に列を挿入...
-
エクセルでの条件付足し算(関...
-
エクセル 数式入り等のセルの...
-
エクセル関数について
-
エクセルの関数
-
Excel 2010の縦列Aの再表示法...
-
列をまたがるデータの並び替え
-
エクセル2003で、ブックの保護...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで隣のセルが空白の場合に...
-
名簿の作り方 姓名が一文字...
-
エクセル ある数値以下を特定の...
-
エクセルの列と行を等間隔にし...
-
エクセルでの出欠表、出席日を...
-
セル内の文字左詰めを0.5インデ...
-
かぶったセルの表示方法を教え...
-
エクセルで住所録を作った
-
SUMPRODUCT関数で0(ゼロ)と
-
=VLOOKUPで、検索値が手打ちだ...
-
エクセルの列全体に計算式を入...
-
エクセルでA列全部の数値を50...
-
Excelで冊子を作成する場合の、...
-
金銭出納帳をエクセルでつくり...
-
エクセルの表 社名に御中を付ける
-
Access
-
ms excel の表計算で入力したア...
-
同じ順位同士をさらに条件をつ...
-
Excelで2行ずつ連番を振るには...
-
エクセル 複数行になる文章を...
おすすめ情報