Excel

【Excel】VBAマクロで複数行を削除(範囲指定、飛び飛び、規則など)【Range、InputBox、Deleteメソッド使用】

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

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

ポイントとしてはRangeメソッド、InputBox関数、Deleteメソッドを使用することです。

なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名を少々変わった名称にしております。

そのため、ご活用の際には、ここを適切なものに変更してご利用くださいね。

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

VBAマクロで複数行を削除(範囲指定)する方法【Range、Deleteメソッド】

それではまず、範囲指定による複数行の削除方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub RyouikiShiteiSakujo()
    Dim hensuu As Range
    Set hensuu = ThisWorkbook.Sheets("Sheet1").Range("A5:A10")
    hensuu.EntireRow.Delete
End Sub

コードのAlt+F8を押し、マクロ選択画面でRyouikiShiteiSakujo関数を実行します。
このコードでは、Sheet1のA5からA10の範囲の行を削除します。

VBAマクロで複数行を削除(ダイヤログで先頭と最終行の範囲指定)する方法【InputBox、Range、Deleteメソッド】

続いては、ダイヤログで先頭と最終行を指定して複数行を削除する方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub DialogSakujo()
    Dim kaishi As Long, shuuryou As Long
    kaishi = InputBox("先頭行を入力してください")
    shuuryou = InputBox("最終行を入力してください")
    ThisWorkbook.Sheets("Sheet1").Rows(kaishi & ":" & shuuryou).Delete
End Sub

コードのAlt+F8を押し、マクロ選択画面でDialogSakujo関数を実行します。
このコードでは、ダイヤログボックスで指定した先頭行から最終行までの範囲の行を削除します。

VBAマクロで複数行を削除(規則的に飛び飛び、ダイヤログで先頭と何行おきに削除か指定)する方法【InputBox、Range、Deleteメソッド】

最後に、規則的に飛び飛びに行を削除する方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub KisekiSakujo()
    Dim kaishi As Long, kankaku As Long, gyou As Long
    kaishi = InputBox("先頭行を入力してください")
    kankaku = InputBox("何行おきに削除しますか?")
    For gyou = kaishi To ThisWorkbook.Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row Step kankaku
        ThisWorkbook.Sheets("Sheet1").Rows(gyou).Delete
    Next gyou
End Sub

コードのAlt+F8を押し、マクロ選択画面でKisekiSakujo関数を実行します。
このコードでは、指定した先頭行から規定の間隔で行を削除します。

この3つの方法を駆使して、ExcelのVBAマクロで効率的に複数行を削除することができます。初心者の方でも上記の手順に従って実行すれば、簡単に行の削除が行えるでしょう。