VBA 行を削除する

はじめに

Excel VBA マクロで行を削除する方法を紹介します。

Rows(2).Delete または Range("A2").EntireRow.Delete メソッドから、行「2」を削除できます。

行を指定して取得するには「行を取得する」をご覧ください。
列を削除するには「列を削除する」をご覧ください。
  • 目次
    • 行を削除する
    • 複数行を削除する
    • Delete と Clear の違い
    • 別シートの行を削除する

行を削除する

Rows の引数に行番号を指定すると、その行を削除できます。

行「2」を削除するには Rows(2).Delete を入力します。

Rows(2).Delete
1

Range の引数にセル名を指定すると、そのセルを取得できます。EntireRow からその行を取得できます。

セル「A2」の行を削除するには Range("A2").EntireRow.Delete を入力します。

Range("A2").EntireRow.Delete

複数行を削除する

行の範囲「2 ~ 3」を削除するには Range("2:3").Delete または Range("2:2", "3:3").Delete を入力します。

' 2 ~ 3 行目を削除
Range("2:3").Delete
Range("2:2", "3:3").Delete
Range(Rows(2), Rows(3)).Delete
Range("A2:A3").EntireRow.Delete
2

Delete と Clear の違い

Delete 以外に Clear メソッドからも行をクリアできます。

詳しくは「行をクリアする」をご覧ください。
Range("2:2").Delete ' 削除
Range("2:2").Clear  ' クリア
  • Delete:行そのものを削除し、上に移動する。
  • Clear:行は残して、すべての値や書式をクリアする。
1 3

削除後に行を移動するときは Delete を使用し、行はそのまま残したいときは Clear を使用します。

別シートの行を削除する

シートを指定するには Worksheets の引数にシート名またはインデックスを指定します。

Sheet1 を指定するには Worksheets("Sheet1") または Worksheets(1) を入力します。

sheet1
' Sheet1 の行を削除
Worksheets("Sheet1").Rows(1).Delete
Worksheets(1).Rows(1).Delete

' Sheet2 の行を削除
Worksheets("Sheet2").Rows(1).Delete
Worksheets(2).Rows(1).Delete

Sheet1 に Rows を入力すると、自身のシートの行になります。自身を表す Me. が省略されています。

' どちらも同じコード
Dim r As Range
Set r = Rows(1)
Set r = Me.Rows(1)

標準モジュールに Rows を入力すると、開いているシートの行になります。アクティブシートを表す ActiveSheet. が省略されています。

' どちらも同じコード
Dim r As Range
Set r = Rows(1)
Set r = ActiveSheet.Rows(1)