はじめに
Excelで作業をしていると、
「不要な行を削除して整理したい」
「条件に合う行だけを自動で削除したい」
そんな場面がよくあります。
VBAでは、行を削除する方法がいくつかあり、
目的に合わせて使い分けることで、コードがより安全で扱いやすくなります。
ここでは、行を削除する基本のコードと、そのしくみを解説します。
まずはコードを確認
Rows(3).Delete
もっともシンプルな書き方です。
3行目を削除します。
コードのしくみを解説
Rows(行番号).Delete で行を削除する
Rows(3).Delete は、3行目を丸ごと削除します。
Rows("3:5").Delete '3〜5行を削除
複数行をまとめて削除することもできます。
Range を使って行を削除する
Range("A3").EntireRow.Delete
セルを基準に行全体を削除したいときに便利
シートを指定して削除する
Worksheets("データ").Rows(3).Delete
複数シートを扱う場合は、シート名を明示すると安全です。
あわせて知っておきたいポイント
条件に合う行だけ削除する例
If Range("A3").Value = "" Then
Rows(3).Delete
End If
空白行を削除するなど、実務でよく使うパターンです。
ループで複数行を削除する場合の注意
行を上から順に削除すると、行番号がずれて意図しない行が削除されることがあります。
安全な書き方はこちら。
Dim i As Long
For i = 10 To 1 Step -1
If Cells(i, 1).Value = "" Then
Rows(i).Delete
End If
Next i
下から上へ 処理するのがポイント
行全体ではなく、セルの内容だけ消したい場合
Rows(3).ClearContents
削除ではなく「中身だけ消す」処理です。
使うときに気をつけたいこと
- 削除した行は元に戻せません
→ バックアップを取っておくと安心です。
- 結合セルがあると削除範囲が広がることがあります
→ 必要に応じて結合を解除してから削除します。
- 大量の行を削除すると処理が重くなることがあります
→ まとめて削除するか、ScreenUpdating を使うと改善します。
まとめ
- Rows(番号).Delete で行を削除できる
- EntireRow を使うとセル基準で行全体を削除できる
- 条件付き削除や複数行削除など、実務で便利な書き方も多い
- 下から上へ削除することで、行ずれのトラブルを防げる
行の削除を自動化できると、データ整理がぐっとスムーズになります。

decopon
行の削除はシンプルですが、実務では意外と使う場面が多い機能です。
安全に扱えるように、基本の書き方を押さえておくと安心です。

moco
いらなくなった行は、VBAにそっと片づけてもらおう。
人は、必要な作業に集中できるね。

コメント