
例えば以下の表の
・列「名前」の
・値「佐藤」ではない行
を…


削除できます!


オートフィルタを利用することで
削除できます!
VBAコード
ここでは例として、
・シート「sample」のセル「B2」から続く一連の範囲の表の
・列「名前」の値が「佐藤」ではない行のみを
・削除
します。

Option Explicit
Sub sample()
Dim targetRange As range
Dim unDeleteRange As range
Dim deleteRange As range
'オートフィルタを設定する表の一番左上のセルを設定
Set targetRange = Worksheets("sample").range("B2")
'オートフィルタの設定と表の1列目「名前」を文字列「佐藤」で絞り込み
targetRange.AutoFilter field:=1, Criteria1:="佐藤"
'絞り込まれた範囲(=削除させない範囲)を取得
With targetRange.CurrentRegion
Set unDeleteRange = .Resize(.Rows.Count - 1).Offset(1, 0).SpecialCells(xlCellTypeVisible)
End With
'オートフィルタを解除
targetRange.AutoFilter
'絞り込まれた範囲(=削除させない範囲)を非表示
unDeleteRange.EntireRow.Hidden = True
'表示されている範囲を削除
With targetRange.CurrentRegion
Set deleteRange = .Resize(.Rows.Count - 1).Offset(1, 0).SpecialCells(xlCellTypeVisible)
deleteRange.EntireRow.Delete
End With
'絞り込まれた範囲(=削除させない範囲)を表示
unDeleteRange.EntireRow.Hidden = False
End Sub
実行結果
オートフィルタを利用して、条件に一致した行ではない行を削除できました。

参考①
オートフィルタを利用して、条件に一致した行のみを削除することもできます。
詳細は以下の記事をご確認ください。
参考②
重複行を削除することもできます。
詳細は以下の記事をご確認ください。
参考③
オートフィルタ関連の記事は他にもあります。
詳細は以下の記事をご確認ください。