【エクセルマクロ】別シートと同じ値を行削除:2選

vba-別シートと同じ値削除-アイキャッチ ExcelVBA

エクセルマクロで、別シートと同じ値を行削除するVBAコードをご紹介します。

このページのマクロコードは、コピペで使えます。
ぜひ、お試しください。

別シートと同じ値を行削除

以下のマクロを実行すると、条件一致する行を削除します。


Sub 別シートに存在する文字列を削除()

Dim List_Sht As Worksheet
Dim Del_Sht As Worksheet
Dim LastRow As Long
Dim i As Long
Dim J As Long
Dim SearchWord() As Variant

    Set List_Sht = Sheets("リスト")
    Set Del_Sht = Sheets("削除対象")

    'Del_Shtの最終行取得
    LastRow = Del_Sht.Cells(Rows.Count, 1).End(xlUp).Row

    'Del_Shtの値を配列格納
    For i = 1 To LastRow
        ReDim Preserve SearchWord(i)
        SearchWord(i) = Del_Sht.Cells(i, 1)
    Next i

    'List_Shtの最終行取得
    LastRow = List_Sht.Cells(Rows.Count, 1).End(xlUp).Row

  Application.DisplayAlerts = False

    'List_Shtをループして、Del_Shtと同じ値があったら行削除
    For i = 1 To UBound(SearchWord)
        '最終行からループ
        For J = LastRow To 1 Step -1
            If List_Sht.Cells(J, 1) = SearchWord(i) Then
               '行削除
               List_Sht.Rows(J).Delete
            End If
        Next J
    Next i

  Application.DisplayAlerts = True

End Sub

 

マクロ実行前

「リスト」から削除したい値を「削除対象」に入力しておきます。


 

マクロ実行後

「削除対象」に存在する値を「リスト」から削除します。


 

別シートと同じ値を行削除(複数条件)

以下のマクロを実行すると、複数の条件が一致する行を消します。


Sub 別シートと同じセル値を削除()

Dim List_Sht As Worksheet
Dim Del_Sht As Worksheet
Dim LastRow As Long
Dim i As Long
Dim J As Long
Dim SearchWord() As Variant

    Set List_Sht = Sheets("リスト")
    Set Del_Sht = Sheets("削除対象")

    'Del_Shtの最終行取得
    LastRow = Del_Sht.Cells(Rows.Count, 1).End(xlUp).Row

    'Del_Shtの値を配列格納
    For i = 1 To LastRow
        ReDim Preserve SearchWord(i)
        SearchWord(i) = Del_Sht.Cells(i, 1) & Del_Sht.Cells(i, 2)
    Next i

    'List_Shtの最終行取得
    LastRow = List_Sht.Cells(Rows.Count, 1).End(xlUp).Row

  Application.DisplayAlerts = False

    'List_Shtをループして、Del_Shtと同じ値があったら行削除
    For i = 1 To UBound(SearchWord)
        '最終行からループ
        For J = LastRow To 2 Step -1
            If List_Sht.Cells(J, 1) & List_Sht.Cells(J, 2) = SearchWord(i) Then
                '行削除
                 List_Sht.Rows(J).Delete
            End If
        Next J
    Next i

  Application.DisplayAlerts = True

End Sub

 

マクロ実行前

「リスト」から削除したい値を「削除対象」に入力しておきます。


 

マクロ実行後

「削除対象」のA列とB列が一致する値を「リスト」から削除します。


 
 
この記事がお役に立ちますと幸いです。
 
・【エクセルマクロ】重複データを自動処理する使用例まとめ
 

【エクセルマクロ】重複データを自動操作:超便利13選
...

 

「プログラマーの本気がExcelを覚醒させる 超絶ExcelVBA」
ExcelVBAでワンランクアップできる書籍
具体的で応用が利く技をたくさん掲載