条件付きで行を削除する(Microsoft Excel)
他の人から受け取った情報を含むデータテーブルを操作している場合、特定の条件が満たされた場合に行を削除して、テーブル内のデータ量を整理することができます。このようなタスクに取り組むには、いくつかの方法があります。
最初の方法は、Excelのオートフィルター機能を使用することです。これは、行を削除するためのかなり単純な基準がある場合に特に効果的です。オートフィルターをオンにすると、Excelはデータテーブルのヘッダー行の各セルの右側にプルダウンボタンを配置します。
これらのプルダウンボタンを使用して、表示するレコードを指定できます。削除する行のみが表示されるフィルター値を選択する必要があります。それらの行が表示されたら、それらを選択し、メニューを使用して行を削除できます。
オートフィルターをオフにすると、必要な行だけが残ります。
別の方法では、マクロを使用して削除を行います。
このアプローチは、大量のデータに対して削除を実行する必要がある場合、または頻繁に実行する場合に適しています。次のマクロは、キー値に基づいて行を削除できます:
Sub DeleteRows() Dim strToDelete As String Dim rngSrc As Range Dim NumRows As Integer Dim ThisRow As Integer Dim ThatRow As Integer Dim ThisCol As Integer Dim J As Integer Dim DeletedRows As Integer strToDelete = InputBox("Value to Trigger Delete?", "Delete Rows") Set rngSrc = ActiveSheet.Range(ActiveWindow.Selection.Address) NumRows = rngSrc.Rows.Count ThisRow = rngSrc.Row ThatRow = ThisRow + NumRows - 1 ThisCol = rngSrc.Column For J = ThatRow To ThisRow Step -1 If Cells(J, ThisCol) = strToDelete Then Rows(J).Select Selection.Delete Shift:=xlUp DeletedRows = DeletedRows + 1 End If Next J MsgBox "Number of deleted rows: " & DeletedRows End Sub
マクロを使用するには、チェックする行をカバーするキー範囲の範囲を選択します。たとえば、チェックするキーが列Gにあり、行5から73をチェックする場合は、範囲G5:G73を選択します。マクロを実行すると、チェックする値を尋ねられます。 G5:G73の範囲のセルに指定した値が含まれている場合、そのセルに対応する行が削除されます。
値に基づいて行を削除する方法は他にもあります。さまざまな方法の適切な選択については、OzgridのDaveHawleyによるこのページをご覧ください。
http://www.ozgrid.com/VBA/VBACode.htm
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(2386)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。
link条件付きで行を削除する。