空白行の削除(Microsoft Excel)
Krisには、データに多数の空白行があるワークシートがあります。彼は、完全に空白のすべての行を削除する単純なマクロを探しています。
このタスクを実行するには、いくつかの方法があります。次のセクションでは、これらの厄介な行を取り除くためのさまざまなアイデアをすべて検討します。
空白の選択
空白がどこにあるかを確認する簡単な方法の1つは、データ内の空白を選択することです。次の手順に従ってください:
。使用しているすべてのデータを選択します。
。 F5を押します。 Excelに[移動]ダイアログボックスが表示されます。
。 [特別]をクリックします。 Excelは、[特別に移動]ダイアログボックスを表示します。 (図1を参照)
。 [空白]ラジオボタンを選択します。
。 [OK]をクリックします。 Excelは、開始範囲内のセルを選択します(ステップ1)
それは空白です。
。リボンの[ホーム]タブを表示します。
。削除ツールをクリックします。 Excelは行を削除します。
このアプローチを採用することには大きな注意点があります。セルが空白の行はすべて削除されます。つまり、このアプローチは、データ内の空白のみが実際に削除する行にある場合に最適です。
本当に保持したいデータの間に空のセルが散在している場合は、このメソッドを使用しないでください。これらの行も削除されます。
並べ替え
データがあまり多くの行で構成されていない場合(たとえば、10列以下のみ)、データを並べ替えることを検討してください。並べ替えの仕様に各列を含めると、空白の行が隣り合って表示され、簡単に削除できます。
データに多数の列があり、ヘルパー列を追加してもかまわない場合は、並べ替え方法のバリエーションで空白行を取り除くことができます。データが列AからPにあるとしましょう。列Qに、次の数式のいずれかを入力します。
=COUNTA(A1:P1) =IF(COUNTBLANK(A1:P1)=16,"DELETE","")
どちらを使用してもかまいません。それらは両方ともあなたが扱うことができる情報をあなたに与えるでしょう。 COUNTA数式の場合、列Qに基づいて並べ替え、その列に0が含まれているものをすべて削除するだけです。
COUNTBLANK数式の場合、同等の値(16)を、COUNTBLANK関数で考慮している列の数に変更する必要があります。 (この場合、16はA:Pの範囲の列の数です。)数式を配置したら、列Qで並べ替えて、その列に「DELETE」という単語が含まれるすべての行を削除するだけです。 。
並べ替え方法のもう1つのバリエーションは、Excelのフィルタリング機能を使用してリストをフィルタリングし、データ列の1つに空白のみを含めることです。 (たとえば、列Aの空白をフィルタリングできます。)次に、残りの列を並べ替えて、空白行全体を1か所にまとめ、それらの行を削除します。
マクロ
空白行を頻繁に削除する必要がある場合は、マクロを使用して大変な作業を行うことを真剣に検討する必要があります。マクロはリボンに簡単に追加したり、ショートカットキーに割り当てたりできるため、非常に簡単に呼び出すことができます。
このヒントの前半で、必要に応じて、[特別に移動]ダイアログボックスを使用してデータ範囲内の空白セルを選択し、それらの空白セルが存在する行を削除できることを説明しました。 verの単純なマクロでも同じことができます:
Sub DeleteBlanks() Dim R As Range Set R = Range("A1:" & ActiveCell.SpecialCells(xlLastCell).Address) R.SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub
ただし、このマクロは、その行にある可能性のある他のデータを保持したい場合でも、空白がある行を削除することに注意してください。
より良いアプローチは、ワークシートの各行に対してより包括的なチェックを行うことです。
Sub DeleteBlankRows() Dim lRows As Long Dim J As Long lRows = ActiveCell.SpecialCells(xlLastCell).Row Application.ScreenUpdating = False For J = lRows To 1 Step -1 If WorksheetFunction.CountA(Rows(J)) = 0 Then Rows(J).Delete Next J Application.ScreenUpdating = True End Sub
マクロは、ブックで使用される最後のセルを決定し、そのセルが出現する行に等しいlRows値を設定することに注意してください。次に、For … Nextループが各行をステップスルーします(最後から最初まで)
COUNTA関数を使用して、その行に何かがあるかどうかを判別します。そうでない場合、行は削除されます。
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(254)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。