この記事では、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】について確認しました。
マクロをマスターしてさらに快適な生活を送っていきましょう(^^)/