
ExcelVBA データ整理では、不要な空白セルや空白行を削除することで、データを見やすくし、集計や分析をしやすくすることが重要です。使い方や注意点など、サンプルコードをもとに具体的に解説します。
📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!
👇実務で“そのまま使える”テンプレ付きで、コピペするだけ!
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き
目次
Excel VBA 不要な空白セルや空白行を削除|シーン
以下のシーンで利用します。
1.空白セルを削除してデータを詰める(列ごとに上に詰める)
2.空白行を削除し、不要なデータ行を整理する。
3.入力ミスでできた空白セルを見つける。
Excel VBA 不要な空白セルや空白行を削除|サンプルコード
空白セルの判定
標準モジュール(指定範囲の空白セルをハイライトし、確認できるようにする)
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
自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。
空白セルを削除して詰める(列のデータを上に詰める(空白セルを削除))
標準モジュール
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 を使用。
自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。
行全体を削除する (完全に空の行を削除し、表のデータを整理)
標準モジュール
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で自動化するコードのベースが習得できる解説書」
Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。