【VBA】連続した複数行を削除する

行の削除にはDeleteメソッドを使いますが、対象の連続した行を指定するには、3つの方法があります。

サンプルコードでは、2行目から6行目を削除します。

スポンサーリンク

Rangeを使った行の削除

Rangeの引数で、選択する範囲の開始行と終了行をコロン(:)でつなぐと行を指定できます。

指定したら、Deleteメソッドで削除します。

コード

 

解説

Range(“2:6”)なので、2行目~6行目が削除されます。

POINT
Rangeの引数は、ダブルクォーテーションで囲み、範囲をコロン(:)でつなぐ

Rowsを使った行の削除

Rowsの引数で、選択する範囲の開始行と終了行をコロン(:)でつなぐと行を指定できます。

指定したら、Deleteメソッドで削除します。

コード

 

解説

Rows(“2:6”)なので、2行目~6行目が削除されます。

Rowsは行を意味するので、Rangeを使うよりもRows使った方が、パッと見で「行を削除しているな」とわかりやすいプログラムになります。

POINT
Rowsの引数は、ダブルクォーテーションで囲み、範囲をコロン(:)でつなぐ
(1行だけ削除する時は、ダブルクォーテーションで囲みません)

EntireRowを使った行の削除

EntireRowは、対象セルの行全体を返すので、A2:A6などセルを視点に行を選択できます。(先に紹介したRange、Rowsは行を視点)

EntireRowで取得した行を、Deleteメソッドで削除します。

コード

 

解説

プログラムの意味は、次のようになります。

  1. Range(“A2:A6”)で、A2~A6のセル範囲を指定
  2. EntireRowは行全体を返すので、2行目~6行目を返す
  3. Deleteで、EntireRow(2行目~6行目)を削除する

 
1つの行を削除する時、RangeとCellsどちらの指定でも可能でした。でも、複数行の削除する場合は、Rangeによる指定になります。

Rangeは複数のセルが指定できるのですが、Cellsは1つのセルしか指定できないからです。

 
その他テクニックは、次の記事を参考にしてください。

【VBA】行の削除とテクニック
【実行結果】 VBAで行を削除する時は、Deleteメソッドを使用します。 削除する行を指定するには、RangeやRowなど3つの方法があります。 サンプルコードでは、2行目を削除します。 Rangeを使った行指...

関連記事

タイトルとURLをコピーしました