- ベストアンサー
Excel VBAで8行毎に行を挿入する方法
- Excel VBAを使用して、指定の表に8行毎に行を挿入する方法について教えてください。
- 現在の表は担当者ごとに売上区分A-Hを持ち、全体で100名の担当者がいます。
- ボタンを押すと、担当者ごとにデータの下に新しい行が挿入され、A+B、C+D、E+F、G+Hという形式でデータが入力されるようにしたいです。繰り返し処理はすべての担当者に適用されます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>一人のデータが必ず8行になります。 これが事実である前提で。 sub macro1() dim LastRow as long dim r as long lastrow = range("A65536").end(xlup).row + 1 cells(lastrow, "A").resize(4,3).formular1c1 = "=R[-1]C" cells(lastrow, "D").formular1c1 = "=R[-8]&""+""&R[-7]C" ’若しくは単に ="A+B" cells(lastrow + 1, "D").formular1c1 = "=R[-7]&""+""&R[-6]C" ’以下同じ cells(lastrow + 2, "D").formular1c1 = "=R[-6]&""+""&R[-5]C" cells(lastrow + 3, "D").formular1c1 = "=R[-5]&""+""&R[-4]C" for r = lastrow - 8 to 3 step -8 range("A65536").end(xlup).offset(-3).resize(4,1).entirerow.copy cells(r, "A").insert next r ’必要に応じて生かす ’range("A1").currentregion.value = range("A1").currentregion.value end sub
その他の回答 (1)
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! D列は 「A+B」のような文字列表示でよい訳ですよね? (足し算ではないという解釈) >ボタンをクリックしたら・・・ とありますので、コマンドボタンを挿入したとしての一例です。 Private Sub CommandButton1_Click() Dim i As Long, k As Long For i = Cells(Rows.Count, 1).End(xlUp).Row To 9 Step -8 Rows(i + 1 & ":" & i + 4).Insert For k = 1 To 4 With Cells(i + k, 1) .Value = .Offset(-1) .Offset(, 1) = .Offset(-1, 1) .Offset(, 2) = .Offset(-1, 2) .Offset(, 3) = .Offset(-9 + k, 3) & "+" & .Offset(-8 + k, 3) End With Next k Next i End Sub こんなんではどうでしょうか?m(_ _)m
お礼
tom04さん、早速のご回答ありがとうございます! ご教授いただきました方法で完璧に実現できました!! いつもいつもご丁寧なご説明本当にありがとうございます!!! 本当に助かりました(^^)。 ありがとうございました。
お礼
keithinさん、早速のご回答ありがとうございます! ご教授いただきました方法で完璧に実現できました!! いつもご丁寧なご説明誠にありがとうございます。 本当にありがとうございました。