- ベストアンサー
エクセルのマクロについて 2
たびたびすいません マクロについて質問があります 例えばB列に連続した数字を入力していて 1 2 3 5 6 7 9 とあって飛び飛びの数字この場合は3と5の間 7と8の間に一列挿入シたいのですができますか すいませんがお願いします
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
B1から数字が記入してあるとして Sub macro1() Dim s As Long, e As Long Dim r As Long Dim a() ’準備 s = Application.Min(Range("B:B")) e = Application.Max(Range("B:B")) ReDim a(s To e) ’収集 For r = 1 To Range("B65536").End(xlUp).Row a(Cells(r, "B").Value) = Cells(r, "B").Value Next r ’記入 Range("B1").Resize(e - s + 1, 1).Value = Application.Transpose(a) End Sub
その他の回答 (1)
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! >一列挿入シたいのですができますか・・・ は 「行挿入」だと解釈で、 質問では連番で一つ抜けているコトが前提のようですが、 余計なお世話になるかもしれませんが、仮に2個とか3個抜けている場合は その分だけ「行」を挿入するようにしてみました。 データはB列の1行目からとします。 (B1セルが1以外から始まっていても1行目はそのままにしています) Sub Sample1() Dim i As Long, cnt As Long For i = Cells(Rows.Count, "B").End(xlUp).Row To 2 Step -1 With Cells(i, "B") If .Value <> .Offset(-1) + 1 Then cnt = .Value - .Offset(-1) Rows(i & ":" & i + cnt - 2).Insert End If End With Next i End Sub ※ 本来であれば抜けている番号を入れるコードも一緒に記載すればよいのでしょうが とりあえずはこの程度で・・・m(_ _)m