Excelでデータを整理する際、空白の行が含まれると効率的な作業が妨げられることがあります。この記事では、1つの表に対してVBAを使い、空白行を効率的に削除する方法を解説します。
前提条件
以下の条件でコードを使用できます。
- 表の構造:
- 表が1つのシートに存在する。
- 削除対象の行は特定の範囲内に収まっている(例: 19~25行目)。
- 削除する行の条件:
- 行が完全に空白の場合のみ削除します。
- Excel環境:
- VBAが有効になっており、マクロの実行が許可されている。
空白行を削除するVBAコード
以下のコードを使うことで、指定した範囲内の完全な空白行を削除できます。
コード
Sub DeleteEmptyRows()
Dim outputSheet As Worksheet
Dim row As Long
Dim startRow As Long
Dim endRow As Long
' 出力シートを設定
Set outputSheet = ThisWorkbook.Sheets("対象のシート名") ' シート名を適宜変更
' 対象範囲の開始行と終了行を指定
startRow = 19 ' 開始行
endRow = 25 ' 終了行
' 下から上に向かって空白行を削除
For row = endRow To startRow Step -1
If Application.WorksheetFunction.CountA(outputSheet.Rows(row)) = 0 Then
outputSheet.Rows(row).Delete
End If
Next row
End Sub
コードの解説
1. 対象シートの設定
Set outputSheet = ThisWorkbook.Sheets("対象のシート名")
削除対象の表が含まれるシートを指定します。"対象のシート名"を適宜変更してください。
2. 削除範囲の設定
startRow = 19
endRow = 25
削除対象となる行範囲を指定します。この例では19~25行目が対象です。
3. 空白行の判定
If Application.WorksheetFunction.CountA(outputSheet.Rows(row)) = 0 Then
CountA関数で、行内のセルにデータが含まれているかを判定します。この値が0の場合、行が完全に空白とみなされます。
4. 空白行の削除
outputSheet.Rows(row).Delete
空白行を削除します。行を下から上に向かって処理することで、削除後の行インデックスのズレを防ぎます。
まとめ
このVBAコードを活用すれば、空白行の削除を効率的に行えます。データクリーニングの作業が多い場合には特に便利です。ぜひ試してみてください。
技術書の購入コストを抑えてスキルアップするなら

ここまで読んでいただきありがとうございます。最後に宣伝をさせてください。
プログラミングの技術書や参考書は、1冊3,000円〜5,000円するものも多く、出費がかさみがちです。Kindle Unlimitedであれば、月額980円で500万冊以上の書籍が読み放題となります。
気になる言語の入門書から、アルゴリズム、基本設計の専門書まで、手元のスマホやPCですぐに参照可能です。現在は「30日間の無料体験」や、対象者限定の「3か月499円プラン」なども実施されています。まずはご自身のアカウントでどのようなオファーが表示されるか確認してみてください。
