• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルのマクロ(行を挿入し連番を振る))

エクセルでマクロを作成し、行を挿入して連番を振る方法を教えてください

このQ&Aのポイント
  • エクセルのマクロを使い、行を挿入して連番を振る方法を教えてください。
  • 毎日手作業で行を挿入しコピーし連番を振っている作業を効率化したいです。
  • C列の値に応じて、挿入する行数や連番の振り方を判断するマクロを作りたいです。

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

  • ベストアンサー
  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.1

こんばんは Sub test()   Dim c As Long   Dim i As Long      c = Range("A" & Rows.Count).End(xlUp).Row   Application.ScreenUpdating = False   For i = c To 2 Step -1     If Cells(i, 3) > 1 Then       Rows(i + 1).Resize(Cells(i, 3) - 1).Insert       Cells(i + 1, 1).Resize(Cells(i, 3) - 1) = Cells(i, 1)       Cells(i + 1, 3).Resize(Cells(i, 3) - 1) = Cells(i, 3)       Cells(i, 2) = 1       Cells(i, 2).AutoFill Cells(i, 2).Resize(Cells(i, 3)), xlFillSeries     End If   Next   Application.ScreenUpdating = True End Sub で。

pompom4162
質問者

お礼

素早い回答ほんとうにありがとございました。 思ってたとおりの結果でとても助かりました。 教えていただいたマクロを自分の表に合わせて加工していて またわからないところがあったらもう一度教えていただこうかと 思っていたらお礼が遅くなってしまいました。 なんとか自力で加工できとても作業時間の短縮になりそうです。 ほんとうにありがとうございました。

その他の回答 (1)

  • Prome_Lin
  • ベストアンサー率42% (201/470)
回答No.2

申し訳ございません。 私には、行挿入が難しかったので、変なプログラムになってしまいましたが、お望みの結果は、ちゃんと出ています。 「行挿入」と考えずに、「書類」(A列)と「枚数」(C列)をすべて、配列変数に放り込んで、「枚数」分、繰り返す、という処理です。 従って、元のエクセルの表に上書きをしているだけですが、走らせて、確実に結果は得られています。 Option Explicit Sub Test() Dim a() As String Dim c() As Integer Dim b, d, e, i, j As Integer b = -1 For i = 2 To Range("A1").End(xlDown).Row b = b + 1 ReDim Preserve a(b) ReDim Preserve c(b) a(b) = Cells(i, 1).Value c(b) = Cells(i, 3).Value Next i d = 1 For i = 0 To b e = 0 For j = 1 To c(i) d = d + 1 Cells(d, 1).Value = a(i) e = e + 1 Cells(d, 2).Value = e Cells(d, 3).Value = c(i) Next j Next i End Sub

pompom4162
質問者

お礼

回答ありがとうございました。 なるほどなるほど。 同じ結果を得るためのマクロもいろいろあるのですね。 とても参考になりました。 今作っている表の他の作業のところでとても参考になりました。 回答をいただいたお二人のお蔭でいままで何時間もかけていたものが 劇的に早くなりました。

関連するQ&A