1506932110 空白行挿入のエクセルマクロの作成をお願いします。


A列~X列までデータが入っています。
1行目は見出し行です。

複数対象列(J,K,L,N,O)のデータの重複が終わったところで空白行を挿入するマクロを希望しています。例を添付しました。

回答の条件
  • 1人1回まで
  • 13歳以上
  • 登録:2017/10/02 17:15:10
  • 終了:2017/10/04 10:46:02

ベストアンサー

id:a-kuma3 No.1

a-kuma3回答回数4606ベストアンサー獲得回数19432017/10/03 22:19:04

ポイント800pt

こんな感じでどうでしょう。

Sub insert_row()
    Dim prev
    col_s = 10      ' J列
    col_e = 14      ' N列
    ReDim prev(col_s To col_e)

    last_row = Cells(Rows.Count, 10).End(xlUp).Row
    For c = col_s To col_e
        prev(c) = Cells(last_row, c).Value
    Next

    For r = last_row - 1 To 1 Step -1
        For c = col_s To col_e
            If Cells(r, c).Value <> prev(c) Then
                Rows(r + 1).Insert
                Exit For
            End If
        Next
        For c = col_s To col_e
            prev(c) = Cells(r, c).Value
        Next
    Next
End Sub

対象のシートを選択した状態で、insert_row サブルーチンを実行してください。
J~N列には、空白のセルがない前提です。


追記です。
M列が比較の対象外ということに気が付きませんでした m(_ _)m
M列を比較の対象外にしたコードは以下のようになります。

Sub insert_row()
    Dim prev
    col_s = 10      ' J列
    col_e = 15      ' O列
    ReDim prev(col_s To col_e)

    last_row = Cells(Rows.Count, 10).End(xlUp).Row
    For c = col_s To col_e
        prev(c) = Cells(last_row, c).Value
    Next

    For r = last_row - 1 To 1 Step -1
        For c = col_s To col_e
            If c <> 13 And Cells(r, c).Value <> prev(c) Then
                Rows(r + 1).Insert
                Exit For
            End If
        Next
        For c = col_s To col_e
            prev(c) = Cells(r, c).Value
        Next
    Next
End Sub
他4件のコメントを見る
id:a-kuma3

直しました。
回答に追記しています。

2017/10/04 10:39:45
id:tororosoba

お手を煩わせて申し訳ございませんでした。
希望通りに動きました!
本当に助かりました、ありがとうございます!

2017/10/04 10:45:19

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません