エクセルマクロで、特定文字を含む行削除するVBAコードをご紹介します。
このページのマクロコードは、コピペで使えます。
ぜひお試しください!
特定文字を含む行削除
以下のExcelVBAを実行すると、InStr関数を使用して特定の値を含む行削除します。
Sub 指定文字行削除()
Dim LastRow As Long
Dim i As Long
'最終行取得
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
With ActiveSheet
'最終行から先頭へループ
For i = LastRow To 1 Step -1
'特定文字があったら行削除
If InStr(Cells(i, 5), "せき止め派") >= 1 Then
.Rows(i).Delete
End If
Next
End With
End Sub
マクロ実行後
E列で特定文字列を含む行を一括削除します。
下図の「削除前」は削除対象行が分かりやすいように、セルに色付けしています。
特定文字を含む行削除(複数文字)
以下のExcelVBAを実行すると、複数の単語を含む行削除します。
Sub 複数文字行削除()
Dim LastRow As Long
Dim i As Long
Dim j As Long
Dim Target As Variant
'最終行取得
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
'対象文字
Target = Array("左ルー", "手前ルー", "ぶっかけ")
Application.DisplayAlerts = False
With ActiveSheet
'最終行から先頭へループ
For i = LastRow To 1 Step -1
For j = 0 To UBound(Target)
'特定文字があったら行削除
If InStr(Cells(i, 5), Target(j)) >= 1 Then
.Rows(i).Delete
End If
Next j
Next
End With
Application.DisplayAlerts = True
End Sub
マクロ実行後
E列で特定文字を含む行をまとめて削除します。
特定文字を含む行削除(複数列・複数文字)
以下のExcelVBAを実行すると、複数列で特定文字を含む行を削除します。
Sub 複数の列の行削除()
Dim LastRow As Long
Dim i As Long
Dim j As Long
Dim Q As Long
Dim Target_Char As Variant
Dim Target_Clm As Variant
Dim A As Variant
Dim B As Variant
'最終行取得
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
'対象文字
A = Array("左ルー", "手前ルー")
B = Array("香川県", "神奈川県", "山形県")
'最初のループでの対象文字と対象列
Target_Char = A
Target_Clm = 5
Application.DisplayAlerts = False
For Q = 1 To 2
'最終行から先頭へループ
For i = LastRow To 1 Step -1
For j = 0 To UBound(Target_Char)
'特定文字があったら行削除
If InStr(ActiveSheet.Cells(i, Target_Clm), Target_Char(j)) >= 1 Then
ActiveSheet.Rows(i).Delete
End If
Next j
Next i
'次のループでの対象文字と対象列
Target_Char = B
Target_Clm = 4
Next Q
Application.DisplayAlerts = True
End Sub
マクロ実行後
D列で [B = Array(“香川県”, “神奈川県”, “山形県”)] を含む行を削除
E列で [A = Array(“左ルー”, “手前ルー”)] を含む行を削除
この記事がお役に立ちますと幸いです。
「プログラマーの本気がExcelを覚醒させる 超絶ExcelVBA」
ExcelVBAでワンランクアップできる書籍
具体的で応用が利く技をたくさん掲載
リンク