【エクセルマクロ】特定文字を含む行削除:動画あり

ExcelVBA-特定文字含む行削除-アイキャッチ ExcelVBA

エクセルマクロで、特定文字を含む行削除する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でワンランクアップできる書籍
具体的で応用が利く技をたくさん掲載