初心者向け・VBA 行削除の方法まとめ|Range.Delete・EntireRow・RemoveDuplicatesの使い方

vba 行削除 2025

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作業を効率化し、自動処理をスムーズに行えます。

読む  初心者向け・MySQL UPDATE文の使い方|WHERE句の書き方と複数カラム更新の実例
タイトルとURLをコピーしました