目次
連続する行範囲
今回の投稿では、 Excel (エクセル)のワークシート内の連続する行範囲を削除するマクロを書いてみたいと思います。
例として下記画像の Excel ワークシートの 2 ~ 4 行目を削除するマクロを作成してみたいと思います。

Rows("2:4").Delete
早速、下記のマクロのコードを書いてみました。「ActiveSheet」は現在のワークシートを指定しています。「Rows("2:4")」は. 2 ~ 4 行目という指定になります。「現在のワークシート > 2 ~ 4 行目」という風に操作する対象をオートフィルタを掛けるように絞り込んでいるイメージでしょうか。「Delete」で絞り込んだ対象の削除を実行しています。
Sub RowsDelete()
ActiveSheet.Rows("2:4").Delete
End Sub
上のマクロの実行結果は以下のようになりました。 2 ~ 4 行目の B , C , D が入力されていた行が削除されていますね。

上記のマクロで「Rows("2:4")」と書いた部分を、「Rows("A2:A4")」として、セル範囲の名前をダブルクオーテーション( " の記号、二重引用符)で囲んでもマクロが成功するでしょうか。以下のようにコードを修正してみました。
Sub RowsDelete_2()
ActiveSheet.Rows("A2:A4").Delete 'ワークシート上で数式入力する時に使用するようなセル範囲の指定を行ってみます。
End Sub
上のマクロを実行してみると、以下のようなエラーが発生してしまいました。この指定方法では、エラーになってしまうのですね。

以下のコードでは、どうなるでしょうか。「Rows(2:4)」として、ダブルクオーテーションで囲まないでおきます。
Sub RowsDelete_3()
ActiveSheet.Rows(2:4).Delete 'ここまで入力して Enter キーを押すとエラーが発生しました。
End Sub
上のマクロのコードの「Delete」まで入力して Enter キーを押したところ、以下のようなエラーが発生してしまいました。ダブルクオーテーションで囲む必要がありそうですね。

Rows(2).Resize(3).Delete
次は、違うやり方でワークシートの 2 ~ 4 行目を削除してみたいと思います。以下のマクロを作成してみました。「ActiveSheet」は、現在のアクティブなワークシート。「Rows(2)」は、 2 行目全体を指定しています。その後の「.Resize(3)」は、「Resize」プロパティというものを使用しています。「. ドット ピリオド?」の前の範囲の行数を「3」行分に変更するという命令になっています。 3 行足されるのではなく、基点を含んだ行の総数を指定するようです。
Sub RowsResizeDelete()
ActiveSheet.Rows(2).Resize(3).Delete
End Sub
上のマクロを実行してみると、以下の画像のような結果になりました。

Resize のテスト
Resize のテストとして以下のマクロを作成してみました。 Resize プロパティで操作対象の範囲を変更して、その時のセル範囲のアドレスを VBE のイミディエイトウィンドウに出力するマクロになっています。 Resize プロパティは「 Resize ( 変更後のセルの総行数 , 変更後のセルの総列数 ) 」という書式で記述するようです。
Sub Resizeプロパティのテスト()
Debug.Print ActiveSheet.Name 'ワークブックのアクティブなワークシートの名前です。
Debug.Print Rows(2).Address '始点のセル範囲です。
Debug.Print Rows(2).Resize(3).Address '始点を基にして「行」の総数を「3」行に変更した時のセル範囲です。
Debug.Print Rows(2).Resize(3, 3).Address '始点を基にして「行」の総数を「3」行、「列」の総数を「3」列に変更した時のセル範囲です。
End Sub
マクロの実行結果は以下の画像のようになりました。「$2:$2」だったセル範囲が、 Resize プロパティで変更されて「$2:$4」になっていますね。

イミディエイトウィンドウの出力結果です。
Sheet1
$2:$2
$2:$4
$A$2:$C$4
テスト環境
- Windows 10
- Microsoft Office Excel 2003
あとがき
ワークシートの連続する行を削除するマクロを 2 通り作成してみましたが、他にも色々な方法があると思います。一例としてご覧ください。
以上、閲覧ありがとうございました。