Excelで空白行を削除する6つの方法|手動からVBAまで徹底解説
大きなスプレッドシートを扱っていると、見やすさや理解しやすさのために、意図的に空白行を挿入することがよくあります。多くの人にとって空白行は便利なものですが、人によっては作業の妨げになり、非常に煩わしく感じることもあるでしょう。また、Excelソフトの不具合によって空白行が生成されるケースもあります。さらに、Excelファイルの転送時や社内データベースからのデータエクスポート時などにも空白行が発生することがあります。
この記事では、Excelで空白行を削除するためのさまざまな方法を、初心者の方にもわかりやすく解説します。
方法1:空白行を手動で選択して削除する
最もシンプルな方法は、空白行を手動で選択して削除することです。ただし、大きなスプレッドシートでは対象となる行を一つずつ探す必要があるため、時間がかかる場合があります。
手順は以下の通りです。
- 行番号の左端にマウスカーソルを合わせて右クリックすると、その行全体が選択されます
- Ctrlキーを押しながら他の空白行も順番にクリックしていくと、すべての空白行を選択できます


次に、「ホーム」タブの「削除」から「シートの行削除」をクリックします。これで選択した空白行がすべて削除されます。

この方法は空白行以外の行に対しても使えるため、さまざまな場面で応用できます。
方法2:「ジャンプ」機能で空白セルを検索して削除する
空白行が少しあるだけなら手動でも対応できますが、数が多い場合は時間がかかりすぎます。そこで、より効率的な方法をご紹介します。
- まず、操作したい範囲を選択します
- 「ホーム」タブの「検索と選択」から「ジャンプ」→「セル選択」をクリックします


- 「セル選択」ダイアログボックスで「空白セル」を選択し、「OK」を押します
- これにより、範囲内のすべての空白セルが一度に選択されます


- あとは前述の方法と同じように、行ごと削除します

注意:この方法では、空白セルを含むすべての行が削除されてしまいます。これは本来望んでいる結果ではないかもしれません。また、列の中に欠損値(未入力のセル)がある場合も一緒に削除されるため、データがずれて不整合が生じる可能性がある点に注意が必要です。
関連記事:セルが空白でない場合に行を強調表示する方法(4つの方法)
方法3:Excelの「検索」機能を使って空白行を削除する
前の例では空白セルが多すぎたため、実際には空白ではない行まで削除されてしまいました。ここでは表を少し修正して、より正確な結果が得られるようにします。
この方法では、Excelの「検索」機能を使用します。以下の手順で進めてください。
- まずデータセットを選択し、「ホーム」タブの「検索と選択」から「検索」をクリックします
- 「検索と置換」ダイアログボックスで、「検索する文字列」には何も入力せず、「検索場所」で「値」を選択します


- 「すべて検索」を押すと、ダイアログボックスの下に検索結果の一覧が表示されます。Ctrl+Aですべて選択し、ダイアログボックスを閉じます

- 選択範囲内の空白セルが選択された状態になります。先ほどと同じ要領で行ごと削除しましょう


方法4:フィルター機能を使って空白行を削除する
この方法では、データをテーブル形式にしておく必要があります。以下の手順に従ってください。
- まず、空白行を削除したい範囲を選択します
- 「ホーム」タブの「並べ替えとフィルター」から「フィルター」をクリックします

- 任意の列を選択してフィルターのドロップダウンを開き、「(空白)」以外のチェックをすべて外して「OK」を押します

- これで範囲内の空白セルだけが表示・選択されます

- 「ホーム」タブの「削除」から「シートの行削除」をクリックします
- 最後にフィルターを解除すると、空白行が削除されていることが確認できます

注意:この操作を行う前に必ずテーブルを作成してください。そうしないと、列の間に空白があるため、すべての項目が正しく表示されません。テーブル化することで、操作対象の範囲が明確になります。
関連記事:Excelで特定のデータを含む行を選択する方法(4つの方法)
方法5:IF関数を使って空白行を削除する
この方法では、「Test」という名前の補助列を追加します。前の方法と似ていますが、違いはどの行が空白なのかがひと目でわかる点です。手順は以下の通りです。
- D2セルに次の数式を入力します:=IF(AND(ISBLANK(A2), ISBLANK(B2), ISBLANK(C2)),"Blanks", "No-Blanks")
- Enterキーを押すと、「Blanks」または「No-Blanks」のいずれかが表示されます。この数式が入ったセルを下方向にドラッグすると、すべての行に数式がコピーされます

- 前の例と同様に、Test列にフィルターをかけ、「No-Blanks」のチェックを外します

- これで空白行だけが表示されます。先ほどと同じように削除し、フィルターを解除すると、表からすべての空白行が消えていることが確認できます

方法6:Excel VBA(マクロ)を使って空白行を削除する
マクロ/VBAで空白行を削除したい場合は、以下のコードを使用できます。コードの出典はこちらです:https://www.mrexcel.com/forum/excel-questions/1015878-macro-fro-removing-blank-cells-range.html
| ソースコード | |
Sub DeleteBlankRows() Dim Rw As Range If WorksheetFunction.CountA(Selection) = 0 Then MsgBox "No blank rows found", vbOKOnly Exit Sub End If With Application .Calculation = xlCalculationManual .ScreenUpdating = False Selection.SpecialCells(xlCellTypeBlanks).Select For Each Rw In Selection.Rows If WorksheetFunction.CountA(Selection.EntireRow) = 0 Then Selection.EntireRow.Delete End If Next Rw .Calculation = xlCalculationAutomatic .ScreenUpdating = True End With MsgBox "Blank Rows Removed" End Sub
Excelの「開発」タブにある「Visual Basic」をクリックします。表示された空白の画面にコードを貼り付けて実行すると、「Blank Rows Removed(空白行を削除しました)」というメッセージボックスが表示されます。最後に「OK」を押して完了です。


注意:このコードはテーブルに対しては機能しません。テーブル内の空白行を削除したい場合は、このコードでは対応できませんのでご注意ください。また、このコードを実行するには、Excelのマクロを有効にする必要がある場合があります。
まとめ
このように、Excelで空白行を削除する方法には、シンプルなものから高度なものまでさまざまな選択肢があります。自分の状況やスキルレベルに合った最適な方法を選びましょう。空白行の削除時には、意図しないセルまで削除してしまう可能性があるため、十分に注意して作業を行ってください。
他にも役立つテクニックをご存じでしたら、ぜひ共有してください。
関連記事
- Excelのデータクリーンアップ技法:行をランダムに入れ替える方法
- 条件付き書式でExcelの行に交互の色を付ける方法【動画】
- Excelで1行おきに網掛けする方法
- Excelでアクティブな行を強調表示する方法(3つの方法)
-
Excelで条件に基づいて行を列に転置する方法(数式・VBAの2つのアプローチ)
通常、行を列に変換したい場合にはTRANSPOSE関数がよく利用されます。しかし、TRANSPOSE関数では「一意の値(ユニークな値)だけを抜き出す」といった特定の条件に基づいた結果を返すことができません。そこで本記事では、Excelで条件に基づいて行を列に転置する方法をわかりやすく解説します。 Excelで条件に基づいて行を列に転置する2つの便利な方法 以下の図には、複数の商品名とそれぞれの数量をまとめたサンプルデータセットを用意しました。ここから行を列へ転置していきます。データ内には同一商品の重複行が含まれているため、一意の値を条件として転置処理を行います。 まずはINDEX関数・MATC
-
Excelで非表示のリンクを削除する5つの簡単な方法【初心者向け完全ガイド】
Excelで作業をしていると、スプレッドシートから不要なリンクを削除したくなることがあります。本記事では、Excelの非表示リンクを削除する5つの効果的な方法を詳しく解説します。Excelの標準機能を活用する方法や、VBAコードを使ってハイパーリンクを一括削除する方法に加えて、自動的にリンクが挿入される機能を無効化する方法についてもご紹介します。 練習用ワークブックは、記事内のリンクからダウンロードできます。 Excelで非表示のリンクを削除する5つの方法 Excelでは、セルにメールアドレスやURLを入力すると、瞬時にクリック可能なハイパーリンクが自動作成されます。しかし、この機能は便利であ