• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL VBA 自動で8行毎に行を挿入したい)

Excel VBAで8行毎に行を挿入する方法

このQ&Aのポイント
  • Excel VBAを使用して、指定の表に8行毎に行を挿入する方法について教えてください。
  • 現在の表は担当者ごとに売上区分A-Hを持ち、全体で100名の担当者がいます。
  • ボタンを押すと、担当者ごとにデータの下に新しい行が挿入され、A+B、C+D、E+F、G+Hという形式でデータが入力されるようにしたいです。繰り返し処理はすべての担当者に適用されます。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

>一人のデータが必ず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

yakkun2338
質問者

お礼

keithinさん、早速のご回答ありがとうございます! ご教授いただきました方法で完璧に実現できました!! いつもご丁寧なご説明誠にありがとうございます。 本当にありがとうございました。

その他の回答 (1)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! 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

yakkun2338
質問者

お礼

tom04さん、早速のご回答ありがとうございます! ご教授いただきました方法で完璧に実現できました!! いつもいつもご丁寧なご説明本当にありがとうございます!!! 本当に助かりました(^^)。 ありがとうございました。