Excel VBA データ整理で不要な空白セルや空白行を削除する方法

 

ExcelVBA  データ整理では、不要な空白セルや空白行を削除することで、データを見やすくし、集計や分析をしやすくすることが重要です。使い方や注意点など、サンプルコードをもとに具体的に解説します。

 

2025年の目標は繰り返し作業に悩まされない年にしませんか? Excel VBAを活用した効率化がその第一歩
本サイト参考:Excel VBAで自動化するコードのベースを習得したい方におすすめの記事

 

Excel VBA 不要な空白セルや空白行を削除|シーン

以下のシーンで利用します。

1.空白セルを削除してデータを詰める(列ごとに上に詰める)

2.空白行を削除し、不要なデータ行を整理する。

3.入力ミスでできた空白セルを見つける。

 

Excel VBA 不要な空白セルや空白行を削除サンプルコード

Excel VBAで効率化の準備をしてみませんか?2025年をよりスムーズに過ごすための資格
基本的な文法やVBAの実践的な応用までを網羅的に学習できる方法は、ExcelVBAエキスパート資格の取得を目指すこと。学習を通して、より効率的に、着実に基礎を身につけることが可能です。資格取得すれば、スキルの証明にもなり、職場での評価アップにも繋がるため、勉強を進めるモチベーションにもなります。
本サイト参考:マクロ知識がないから「何から学べば良いのかわからない」という人におすすめの記事

空白セルの判定

標準モジュール(指定範囲の空白セルをハイライトし、確認できるようにする)

Option Explicit

Sub 空白セルを判定()
    Dim ws As Worksheet
    Dim rng As Range
    Set ws = ThisWorkbook.Sheets("Sheet1") ' 対象のシート
    
    For Each rng In ws.Range("A1:A10") ' A1:A10の範囲でチェック
        If IsEmpty(rng.Value) Then ' 空白セルを判定
            rng.Interior.Color = RGB(255, 255, 0) ' 黄色でハイライト
        End If
    Next rng
    
    MsgBox "空白セルの判定が完了しました!", vbInformation
End Sub

空白セルを削除して詰める(列のデータを上に詰める(空白セルを削除))

標準モジュール

Option Explicit

Sub 空白セル削除_詰める()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1") ' 対象のシート

    On Error Resume Next
    ws.Range("A1:A100").SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp ' 空白セルを削除して詰める
    On Error GoTo 0

    MsgBox "空白セルを削除し、データを詰めました!", vbInformation
End Sub

SpecialCells(xlCellTypeBlanks) が対象範囲に空白がないとエラーが出るので On Error Resume Next を使用。

行全体を削除する (完全に空の行を削除し、表のデータを整理)

標準モジュール

Option Explicit

Sub 空白行削除()
    Dim ws As Worksheet
    Dim i As Long
    Set ws = ThisWorkbook.Sheets("Sheet1") ' 対象のシート
    
    For i = ws.Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1 ' 最終行から上へ
        If Application.WorksheetFunction.CountA(ws.Rows(i)) = 0 Then ' 行が空白か判定
            ws.Rows(i).Delete ' 空白行を削除
        End If
    Next i
    
    MsgBox "空白行を削除しました!", vbInformation
End Sub

CountA を使うことで、セルにデータが何もない場合のみ削除する。

 

Excel VBA 不要な空白セルや空白行を削除|まとめ

処理 使用VBA関数・メソッド 目的
空白セルを判定 IsEmpty 空白セルを探してハイライトする
空白セルを削除 SpecialCells(xlCellTypeBlanks).Delete 空白セルを削除し、上に詰める
空白行を削除 CountA + Rows.Delete 余分な空白行を削除

 

Excel VBAで自動化するコードのベースを習得したい方におすすめ!

VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。

ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。


ExcelVBAエキスパートスタンダード

ExcelVBAの開発を仕事にする人が対象の問題集です。

 

Excel  VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。