Excel VBAでは、行を自動で削除することでデータ整理や不要情報の除去を効率化できます。この記事では、VBA 行削除に使われる代表的なメソッド・Range.Delete・EntireRow・RemoveDuplicatesについて、初心者でもわかりやすく解説します。
VBAで行削除を行う基本を理解しよう
行削除を自動化するメリット
Excelで大量のデータを扱うとき、手動で行を削除するのは非効率です。VBAを使えば、特定条件に一致する行や空白行を一瞬で自動削除できます。
VBAでの基本的な削除構文や使用例については、VBA行削除の基本とよくある失敗例で詳しく解説されています。
削除とクリアの違い
- 削除(Delete):行そのものを削除し、下の行が繰り上がる。
- クリア(Clear/ClearContents):行の中身だけを消して、行構造は残す。
削除とクリアを混同しないように注意しましょう。
Rows.Deleteを使った基本的な行削除
最も基本的な構文は次のとおりです。
Rows(1).Delete
このコードは、1行目を削除する命令です。複数行を削除したい場合は、範囲を指定します。
Rows("2:4").Delete
2〜4行目をまとめて削除します。削除後は下の行が自動的に繰り上がります。
Range.Deleteで特定範囲の行を削除する
Range.Deleteを使うと、セル範囲を指定して削除が可能です。
Range("A2:C2").Delete
この場合、A2〜C2のセルが削除され、削除した方向に応じて他のセルが移動します。移動方向を明示したいときは、次のようにShiftオプションを指定します。
Range("A2:C2").Delete Shift:=xlUp
これにより、削除後に下のセルが上に詰まります。
Range.EntireRow.Deleteでセルを含む行を削除
セルを指定してそのセルを含む行を丸ごと削除する場合は、EntireRowを使用します。
Range("B2").EntireRow.Delete
このコードは、B2セルを含む2行目全体を削除します。条件付きで削除する場合は、If文やFor文を組み合わせて制御できます。
Dim i As Long
For i = 10 To 1 Step -1
If Cells(i, 1).Value = "" Then
Rows(i).Delete
End If
Next i
この例では、A列が空白の行を削除します。Excel VBAでの行削除・列削除の基礎は、Excel VBAで行/列を削除する方法を読むとより理解が深まります。
列を削除する方法も覚えておこう
行削除と似ていますが、列を削除する場合はColumns.Deleteを使います。
Columns(1).Delete
1列目を削除します。複数列を削除したい場合は次のようにします。
Columns("B:D").Delete
また、セルを含む列を削除するにはEntireColumnを使います。
Range("C2").EntireColumn.Delete
行を削除せずに値だけクリアする方法
行構造を残して中身だけ消すには、ClearやClearContentsを使います。
Rows(2).Clear
これは書式ごと削除します。書式を残して値だけを消す場合は、以下のようにします。
Range("A2:D2").ClearContents
重複行を削除するRemoveDuplicatesの使い方
重複データを削除したい場合は、RemoveDuplicatesメソッドを使用します。
Range("A:C").RemoveDuplicates Columns:=Array(1, 2, 3)
これはA〜C列を基準に重複行を削除します。名簿や取引データなどで、同じ値が登録された行をまとめて削除したいときに便利です。
より応用的な重複削除や条件付き削除を自動化する方法は、不要データを自動で削除するVBA行削除テクニックに詳しく掲載されています。
まとめ|目的に合わせた行削除の使い分け
| 目的 | 使用メソッド | 説明 |
|---|---|---|
| 行を削除する | Rows.Delete / Range.EntireRow.Delete | 行そのものを削除 |
| 一部のセル範囲を削除 | Range.Delete | セル単位で削除・移動方向指定可 |
| 値だけ消す | Clear / ClearContents | 行は残す |
| 重複を削除 | RemoveDuplicates | 重複行をまとめて削除 |
VBA 行削除では、目的に応じたメソッドを使い分けることが重要です。Rows.Deleteでシンプルに行を削除したり、RemoveDuplicatesで重複データを整理したりすることで、Excel作業を効率化し、自動処理をスムーズに行えます。


