応用:VBAマクロで空白行を自動削除する(繰り返し処理向け)
決まった範囲の空白行削除を何度も行うなら、VBAマクロでボタン1つの操作にまとめられます。ここでは初心者でも試しやすい2つのパターンを紹介します。
1つ目は、SpecialCellsメソッドで空白セルのある行をまとめて削除するコードです。
Sub 空白行削除_SpecialCells()
On Error Resume Next
Range(“A1:A1000”).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
On Error GoTo 0
End Sub
SpecialCellsは、対象範囲に空白セルが1つもないとエラーになります。エラーで処理が止まらないよう、On Error Resume Nextを添えておくのが安全です。
2つ目は、行を1行ずつ確認して、行全体が空のときだけ削除するループ処理です。判定にはCOUNTA関数(VBAではWorksheetFunction.CountA)を使い、非空セルが0の行を削除します。
Sub 空白行削除_ループ()
Dim i As Long, lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = lastRow To 1 Step -1
If WorksheetFunction.CountA(Rows(i)) = 0 Then
Rows(i).Delete
End If
Next i
End Sub
ループ処理では、必ず末尾の行から先頭に向かって処理する点が重要です。上から削除すると行番号が繰り上がり、削除対象を飛ばしてしまうためです。Step -1で下から処理すれば、行番号のずれを気にせず正確に削除できます。
空白行を削除するときの注意点・よくある失敗
空白行の削除は手軽な操作ですが、やり方を誤るとデータを壊しかねません。ここでは実務で起きやすい失敗と対策を整理します。
一部の列だけ空白の行を巻き込んで削除してしまう
ジャンプ機能で「空白セル」を選ぶと、一部の列だけが空白でほかの列にはデータが入っている行まで選択されます。この状態でセル単位の削除を行うと、データのある行までずれてしまいます。旧記事の「上方向にシフト」がまさにこの失敗を招く操作でした。
対策は2つあります。1つは、削除時に必ず「行全体」を選び、行がまるごと空のときだけ削除する意識を持つことです。もう1つは、COUNTA関数でヘルパー列を作り、全列が空白かどうかを正確に判定する方法です。
具体的には、空いている列に「=COUNTA(A2:D2)」のような数式を入れ、行内の入力済みセル数を数えます。結果が0の行だけが「完全な空白行」です。この列でフィルターや並べ替えを行えば、一部だけ空白の行を巻き込まずに削除できます。
見た目は空白でも実際は空白でないセルに注意する
半角・全角スペースや空文字列(””)が入ったセルは、見た目は空白でもエクセルは「データあり」と判定します。この場合、ジャンプ機能の「空白セル」では選択されず、空白行として削除できません。旧記事で解説していたスペース削除は、この状況の対処として有効です。
スペースを取り除く代表的な方法は、置換とTRIM関数の2つです。置換は Ctrl + H(Macは Command + Shift + H)で置換ダイアログを開き、「検索する文字列」にスペースを入力、「置換後の文字列」を空欄にして「すべて置換」を実行します。関数を使う場合は、別のセルに「=TRIM(A1)」と入力すると、文字列の前後のスペースがすべて削除され、単語間のスペースは1つだけ残ります。
印刷されない制御文字が混ざっている場合は、CLEAN関数を組み合わせた「=TRIM(CLEAN(A1))」が効果的です。TRIM関数の詳しい仕様はMicrosoftの公式ヘルプで確認できます。
削除前のバックアップとCtrl+Zで戻せる範囲
一括削除は便利な半面、誤って必要な行を消すリスクもあります。作業前にファイルを別名保存するか、シートを複製してバックアップを取っておくと安心です。
直後の操作なら Ctrl + Z(元に戻す)で削除を取り消せます。ただし、いったんファイルを保存して閉じると、それ以前の操作は元に戻せなくなる点に注意してください。大量削除の前ほど、バックアップの一手間が効いてきます。
Web版Excel(Excel for the web)での空白行削除
ブラウザで使うWeb版Excelでも、空白行の削除は可能です。基本の考え方はデスクトップ版と同じで、行番号を右クリックして「削除」を選ぶか、フィルターで空白行を絞り込んで削除します。
ただしWeb版には一部制限があります。デスクトップ版の「条件を選択してジャンプ(選択オプション)」に相当する機能はWeb版の「検索と選択」メニューに用意されておらず、ジャンプ機能で空白セルを一括選択する方法は使えません。この操作を使いたい場合は「デスクトップアプリで開く」からデスクトップ版のExcelを起動してください。
参考:Microsoft サポート「Excel for the web でサポートされていない機能を含むブックを編集する」
一方でPower Queryは、2026年1月にExcel for the webでもフル機能(インポートウィザード、Power Queryエディター、変換、閉じて読み込む、更新)が正式提供されました。ブラウザだけで空白行の削除まで完結できます。ただし条件があり、クエリの新規作成・編集はMicrosoft 365のBusiness/Enterpriseプランが対象で、閲覧と更新のみなら全プランで利用可能です。データソースはOneDriveやSharePointなどクラウド上のものが前提で、ローカルファイルを直接読み込むことは執筆時点では未対応となっています。
参考:Microsoft Community Hub「New in Excel for the web: The full Power Query experience」
なお、FILTER関数はWeb版でもプランを問わず利用できます。手軽に非破壊で空白行を除きたいときは、FILTER関数が現実的な選択肢になるでしょう。




DIME MAGAZINE














