【VBA】行を削除する方法まとめ

Excel VBAを使って行を削除する方法は多くありますが、それぞれの方法には特有の特徴と適用シーンがあります。この記事では、基本的な行の削除方法から応用テクニックまで、より詳細にわかりやすく解説します。これを読めば、VBAで行を削除する際の疑問がすべて解消されるでしょう。

目次

基本的な行の削除方法

単一行を削除する基本形

Rowsメソッドを使う

Rowsメソッドは、指定した行番号の行を削除する最もシンプルな方法です。

Rows(5).Delete

このサンプルコードは、5行目を削除します。非常に短いコードですが、その分、直感的に理解しやすいです。

RangeとEntireRowを組み合わせる

RangeメソッドとEntireRowプロパティを使うと、特定のセルが所属する行を削除できます。

Range("C7").EntireRow.Delete

このサンプルコードは、”C7″セルが属する7行目を削除します。セルを指定することで、より柔軟な削除が可能です。

複数行を一度に削除する

複数行を連続して削除

Rangeメソッドで範囲を指定

Rangeメソッドで行の範囲を指定することで、複数行を一度に削除できます。

Range("6:8").Delete

このサンプルコードは、6行目から8行目までを一度に削除します。

複数行を非連続で削除

Unionメソッドを使用する

Unionメソッドを使用すると、非連続な行も一度に削除できます。

Union(Rows(2), Rows(4), Rows(6)).Delete

このサンプルコードは、2行目、4行目、6行目を一度に削除します。

DeleteとClearの違いについて

Deleteメソッドの特性

Deleteメソッドは、指定した行そのものを削除します。その結果、削除した行より下の行が上に詰められます。

Rows(10).Delete

Clearメソッドの特性

一方で、Clearメソッドは行そのものは削除せず、その行に含まれるデータや書式をクリアします。

Rows(10).Clear

このサンプルコードは、10行目の内容をクリアしますが、行自体は残ります。

別のシートで行を削除する方法

シートを指定して行を削除

Worksheetsメソッドを使うと、特定のシートに対して行を削除できます。

Worksheets("Sheet2").Rows(3).Delete

このサンプルコードは、”Sheet2″という名前のシートの3行目を削除します。

サンプルコード集

サンプル1:特定の文字列が含まれる行を削除する

処理の流れ

  1. “A”列から”D”列までの範囲をループで走査します。
  2. セルに”削除”という文字列が含まれている場合、その行を削除します。
Sub DeleteRowsWithSpecificText()
    Dim i As Long
    For i = 10 To 1 Step -1
        If Cells(i, "A").Value = "削除" Or Cells(i, "B").Value = "削除" Or Cells(i, "C").Value = "削除" Or Cells(i, "D").Value = "削除" Then
            Rows(i).Delete
        End If
    Next i
End Sub

サンプル2:偶数行を削除する

処理の流れ

  1. 20行目から1行目に向かってループを回します。
  2. 行番号が偶数であればその行を削除します。
Sub DeleteEvenRows()
    Dim i As Long
    For i = 20 To 1 Step -1
        If i Mod 2 = 0 Then
            Rows(i).Delete
        End If
    Next i
End Sub

サンプル3:最後の行から特定の行までを削除する

処理の流れ

  1. 最後の行(lastRow)を特定します。
  2. 最後の行から5行目までを削除します。
Sub DeleteFromLastRow()
    Dim lastRow As Long
    lastRow = Cells(Rows.Count, "A").End(xlUp).Row
    For i = lastRow To 5 Step -1
        Rows(i).Delete
    Next i
End Sub

関連動画

まとめ

Excel VBAで行を削除する方法は多種多様です。この記事で紹介した各方法は、それぞれ特定のシチュエーションで最も効率的です。基本的なRowsメソッドから、複数行を一度に削除するRangeメソッド、さらにはDeleteClearの違いまで、詳しく解説しました。この知識を活かして、VBAプログラミングをよりスムーズに、効率よく行いましょう。

Excelのショートカットキーの練習

当サイトはショートカットキーの練習を実際の動きを確認しながら練習できる機能がついています。繰り返し指を動かして練習ができるので、ゲーム感覚で遊んでいくうちに自然とショートカットキーが使えるようになれます。ショートカットキーは暗記するよりも実際に手を動かして練習していったほうが習得が早くなるので、是非当サイトをブックマークに登録し定期的に練習してみてください。下記のSTARTキーを押下すると練習を始められます。

下のスタートボタンを押して練習モードに入ります。
STARTSTOP
※入力モード切り替え ctrl + shift + alt + space
PRE
NEXT
現在の問題をリストから除外
除外したリストをリセット
現在の除外状況のURL取得
コピー
ガイドモード
リピートモード

※推奨ブラウザ Google Chrome

PUSH ENTER
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次