【コピペOK】空白セルを含む行全体を削除する方法を解説!【Excel VBA】

こんにちは!『ルウちゃんのExcel Labo』管理人の@rouxchanblogです!

今回はこのような悩みについて解説します。

ルウちゃん

空白セルがある行だけを削除したい!

この記事でわかるようになること
  1. 空白セルを取得する方法
  2. 行を削除する方法
  3. 表の範囲を取得する方法
目次

サンプルコードの紹介

空白セルを削除するには「Specialcellsメソッド」と「EntireRow.Delete」を組み合わせて使います!

まずはサンプルコードと実際の画面を見て動きをイメージしてください!

サンプルコード
    Dim 範囲 As Range
    Set 範囲 = Range("A1").CurrentRegion
    範囲.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
実行前
実行後

このように数量や単価に入力がない行だけを削除することができました!

手作業でやっているとかなりめんどくさい処理なのでコピペでも使えるのでぜひ参考にしてください!

次はこのコードで行われている処理を解説していきます。

表の範囲を取得する方法

記述方法
 Dim 範囲 As Range
 Set 範囲 = Range("A1").CurrentRegion

まずは空白セルを探すための範囲を取得します。

このように「Range型」の変数を定義します。

そこにA1セルを対象に「CurrentRegionプロパティ」を入力します。

これだけでA1セルを含む表を範囲として取得することができます。

「CurrentRegionプロパティ」についてもっと詳しく知りたい方はこの記事を参考にしてください。

空白セルを取得する

記述方法
オブジェクト.SpecialCells(xlCellTypeBlanks)

次に空白セルを取得する方法を解説します。

SpecialCellsメソッド」で引数に「xlCellTypeBlanks」とすること空白セルを取得できます。

SpecialCellsメソッド」は他にも数値セルや数式が入っているセルなど、特定のセルを取得することができるので使えるようにしておきましょう!

特定のセルを含む行を削除する方法

記述方法
特定のセル.EntireRow.Delete

特定のセルを含む行全体を削除するには「EntireRowプロパティ」と「Deleteメソッド」を組み合わせます。

EntireRowプロパティ」は対象のセルが入っている行全体をオブジェクトとして返してくれますので、そこに「Deleteメソッド」をかけていきます。

注意しなければいけないのは「Rowプロパティ」では同じような処理はできません。

ルウちゃん

Rowプロパティではなんでできないの??

Rowプロパティ」は特定のセルが何行目に入っているかを返しますので、オブジェクトではなく数値が返ってきてしまします。

この辺の違いは少し難しいですが、メソッドをかけるにはオブジェクトが必要ということだけは覚えておきましょう!

まとめ

この記事のまとめ
  1. 表を範囲として取得するには「CurrentRegionプロパティ
  2. 特定のセルを取得するには「Specialcellsメソッド
  3. 行全体を対象とするには「EntireRowプロパティ

今回は空白セルを含む行を削除する方法を解説しました!

解説した3つの処理については他のコードにも転用しやすいので使えるようにしておきましょう!

この記事で少しでも皆さんのお役に立てれば幸いです!

忘れないうちにお気に入り登録もお願いします!

ありがとうございました!

/// お得な情報 ///

すぐに使えて便利なテクニックが650個も手に入る!

気になる人は今すぐクリック!!

 

目次