【Excel VBA】行を削除する基本コードとやさしい解説

VBA & Excel
スポンサーリンク
スポンサーリンク

はじめに

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
decopon

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

moco
moco

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

コメント

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