【実行結果】
VBAで行を削除する時は、Deleteメソッドを使用します。
削除する行を指定するには、RangeやRowなど3つの方法があります。
サンプルコードでは、2行目を削除します。
Rangeを使った行指定
Rangeでは引数で、「開始行:終了行」と指定します。
1行しか選択しない時は、開始行と終了行には同じ数値を設定します。
その後、Deleteメソッドで削除します。
コード
1 2 |
'2行目を削除 Range("2:2").Delete |
解説
Range(“2:2”)となっているので、開始行が2、終了行も2となります。
なので、2行目が削除されます。
POINT
・Rangeの引数は、ダブルクォーテーションで囲む
・Rangeでは1行しか削除しない時でも、開始行と終了行を指定する
・Rangeの引数は、ダブルクォーテーションで囲む
・Rangeでは1行しか削除しない時でも、開始行と終了行を指定する
Rowsを使った行指定
Rowsによる指定では、引数で対象行を指定します。
その後、Deleteメソッドで削除します。
対象行の数値は、ダブルクォーテーションで囲みません。
コード
1 2 |
'2行目を削除 Rows(2).Delete |
解説
Rows(2)が2行目を意味します。
その行に対してDeleteメソッドを実行しているので、2行目が削除されます。
POINT
・Rowsの引数は、ダブルクォーテーションで囲まない
・Rowsの引数は、ダブルクォーテーションで囲まない
EntireRowを使った対象セルによる行指定
EntireRowは、対象セルの行全体を返します。
EntireRowに対してDeleteすることで、セルで指定した行が削除されます。
コード
1 2 3 |
'2行目を削除(※2通り記載しているので、プログラムする時はどちらかだけでOK) '対象セルをRange指定 Range("A2").EntireRow.Delete |
解説
プログラムの意味は、次のようになります。
- Range(“A2”)で、A2セルを指定
- EntireRowは行を返すので、2行目を返す
- Deleteで、EntireRow(2行目)を削除する
対象セルの指定は、Range、Cellsどちらの方法でも可能です。
POINT
・EntireRowによる指定では、セル視点で行を削除できる
・EntireRowによる指定では、セル視点で行を削除できる