Excel

【Excel】VBAマクロで行削除(複数行、条件、上に詰める、最終行まで)【Delete、For Next、If Then】

当サイトでは記事内に広告を含みます。

この記事では、Excel VBAマクロを使用して行を削除する方法について解説していきます。

処理のポイントとしては、`Delete`、`Find`、`For…Next`ループを使用することです。

特に初心者の方にも理解しやすいように、変数名をあえて変わった名称(例:aaaaahensuuaaaaa)にしています。実際に使用の際は、適切な変数名にご変更で使用してくださいませ(^^)/

それでは詳しく見ていきましょう!

VBAマクロで行削除(複数行、上に詰める)する方法【3から8行目まで】

それではまず、複数行を削除し、自動的に上に詰める方法について解説していきます。この方法を使えば、指定した範囲の行を一括で削除し、データをコンパクトに整理できます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub DeleteRows()
    ' 3行目から8行目までを削除する例
    Range("3:8").Delete Shift:=xlUp
End Sub

 

コードのAlt+F8を押し、マクロ選択画面でDeleteRows関数を実行します。

このコードは、Excelの3行目から8行目までの行を削除し、自動的に上の行を下に詰める処理を行うものになっています!

 

VBAマクロで行削除を条件に従い最終行までする方法(ok列に着目で、3行おきに消す:最終行から4行目まで削除:上に詰める)

続いては、特定の条件(この場合は”ok”列の最終行に着目し、3行おきに削除)に従って行を削除する方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub DeleteEveryThirdRow()
    Dim aaaaalastRowaaaaa As Long
    Dim i As Long
    ' "ok"列の最終行を検出
    aaaaalastRowaaaaa = Cells(Rows.Count, "ok").End(xlUp).Row
    
    ' 最終行から4行目まで、3行おきに削除
    For i = aaaaalastRowaaaaa To 4 Step -3
        Rows(i).Delete Shift:=xlUp
    Next i
End Sub

 

コードのAlt+F8を押し、マクロ選択画面でDeleteEveryThirdRow関数を実行します。

このコードは、特定の列(この例では”ok”列)の最終行から始まり、3行おきに行を削除していきます。

最終行から処理しているのは、上から行削除の処理した場合に各行番号が変化し、関係ない行を消してしまうのを防ぐためです。

 

VBAマクロで行削除を条件に従い最終行までする方法(行方向で「さくらもち」の文字列があればその行削除。最終行から上に詰めていく)

最後に、特定の文字列を含む行を検出し、それらの行を削除する方法について解説します。この技術は、不要なデータを効率的に除去する際に非常に有効です。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub DeleteRowsWithSakuramochi()
    Dim aaaaarowaaaaa As Range
    Dim aaaaacellaaaaa As Range
    Dim aaaaafoundRangeaaaaa As Range
    
    ' "さくらもち"を含むセルを検索
    Set aaaaafoundRangeaaaaa = Cells.Find(What:="さくらもち", LookIn:=xlValues)
    
    ' 見つかった場合、該当する全行を削除
    While Not aaaaafoundRangeaaaaa Is Nothing
        ' 削除対象行を設定
        Set aaaaarowaaaaa = aaaaafoundRangeaaaaa.EntireRow
        aaaaarowaaaaa.Delete Shift:=xlUp
        
        ' 次の"さくらもち"を含むセルを検索
        Set aaaaafoundRangeaaaaa = Cells.FindNext(after:=aaaaafoundRangeaaaaa)
    Wend
End Sub

 

コードのAlt+F8を押し、マクロ選択画面でDeleteRowsWithSakuramochi関数を実行します。

このコードでは、シート内で「さくらもち」という文字列を含む行を検索し、見つかった行を削除するものになっています!

 

まとめ VBAマクロで行を削除(条件、上に詰める、最終行まで、消す)【Delete、For Next、If Then】

この記事では、VBAマクロで行削除(複数行、条件、上に詰める、最終行まで)【Delete、For Next、If Then】について確認しました。

マクロをマスターしてさらに快適な生活を送っていきましょう(^^)/