[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『複数行を一括で追加したい(マクロ)』
vba(マクロ)の初心者です。
例えばA2〜A10セルまでデータが入っている場合に
それぞれのデータの下に4行ずつ行を追加したくて
以下のようなマクロを組んでみました。
(A1セルにはタイトルのようなものが最初から入っています)
現状、4行追加は出来ているのですが、これを5行や3行と
増減をさせる方法が知りたいです。
よろしくお願いします。
――――――――――――――――――――――――――――――
Sub 複数行挿入()
' 行数毎に空白4行挿入()
Application.ScreenUpdating = False
行数 = 2
Range("A1").Select
Do While ActiveCell.Offset(行数).Value <> ""
ActiveCell.Offset(行数, 0).Rows("1:4").EntireRow.Select
Selection.Insert Shift:=xlDown
ActiveCell.Offset(行数 + 1).Select
Loop
Application.ScreenUpdating = True
End Sub
――――――――――――――――――――――――――――――
(おちゃ)
こんにちは
Sub test() Dim i As Long Dim r As Long Const 追加行数 As Long = 4 r = Range("A" & Rows.Count).End(xlUp).Row Application.ScreenUpdating = False For i = r To 2 Step -1 If Range("A" & i).Value <> "" Then Range("A" & i + 1).Resize(追加行数).EntireRow.Insert End If Next Application.ScreenUpdating = True End Sub
Selectしないコードの書き方に慣れた方がいいです。
(ウッシ)
Application.ScreenUpdating = False 挿入行数 = 2 行 = 2
Do While Cells(行, 1).Value <> "" Cells(行, 1).EntireRow.Resize(挿入行数).Insert Shift:=xlDown 行 = 行 + 挿入行数 + 1 Loop Application.ScreenUpdating = True BJ
こういうのもあるよ! 行の挿入は、お尻からやる方がスムーズです。
ウッシさんもおっしゃってますが、Selectしないやり方を覚えることと なるべく主語を付けたコードを書くとあとあとみやすくなります。 この場合、「With Sheets("Sheet1")〜End With」がその役割を果たしています。
Sub 行の挿入()
Dim Ins_Row As Integer '挿入する行 Dim End_Row As Long '一番上のデータがある行 Dim Str_Row As Long '一番下のデータがある行 Ins_Row = 4 End_Row = 2
With Sheets("Sheet2") Str_Row = .Cells(.Cells.Rows.Count, "A").End(xlUp).Row For i = Str_Row To End_Row + 1 Step -1 If .Cells(i, "A") <> "" Then .Rows(i & ":" & i + Ins_Row - 1).Insert Shift:=xlDown Next End With End Sub
(稲葉)こっそり差し替え9:54
どれもわかりやすくて勉強になりました。
ウッシさん、稲葉さんのおっしゃる
Selectせずに組めるようにがんばります。
(おちゃ)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.