【エクセルマクロ】重複しないデータを別シート抽出(動画あり)

ExcelVBA-重複データを別シート転記_アイキャッチ ExcelVBA

エクセルマクロで、重複しないリストを別シート抽出するマクロコードをご紹介します。

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

重複しないデータを別シート抽出

以下のマクロを実行すると、重複データをチェックして別シートに転記します。


Sub 重複がないデータを別シート抽出()

Dim myDic As Object
Dim myKey As Variant
Dim myList As Variant
Dim i As Long
Dim Sht1 As Worksheet
Dim Sht2 As Worksheet

    Set myDic = CreateObject("Scripting.Dictionary")

    Set Sht1 = Sheets("Sheet1")
    Set Sht2 = Sheets("Sheet2")

    'A列を配列に格納
    myList = Sht1.Range("A2", Range("A" & Rows.Count).End(xlUp)).Value

    '連想配列にデータを格納
    For i = 1 To UBound(myList)

        '空欄じゃなければ
        If Not myList(i, 1) = Empty Then
            If Not myDic.exists(myList(i, 1)) Then

                '重複しない値を取得
                myDic.Add Key:=myList(i, 1), Item:=myList(i, 1)
            End If
        End If
    Next i

    '重複していない値を格納
    myKey = myDic.keys

    '別シートに出力
    For i = 0 To UBound(myKey)
        Sht2.Cells(i + 1, 1).Value = myKey(i)
    Next i

    '開放
    Set myDic = Nothing
    Set Sht1 = Nothing
    Set Sht2 = Nothing

End Sub

マクロ実行前


 

マクロ実行後

重複がないデータを別シートに抽出します。


 

重複しないデータを別シート抽出(複数列)

以下のマクロを実行すると、2シート間で重複しないデータを別シート転記します。


Sub 重複がないデータを別シート抽出()

Dim myDic As Object
Dim myList As Variant
Dim i As Long
Dim j As Long
Dim Sht1 As Worksheet
Dim Sht2 As Worksheet

    Set myDic = CreateObject("Scripting.Dictionary")

    Set Sht1 = Sheets("Sheet1")
    Set Sht2 = Sheets("Sheet2")
    
    j = 1

    'A列,B列のデータを配列に格納
    myList = Sht1.Range("A2", Range("A" & Rows.Count). _
                     End(xlUp)).Resize(, 2).Value

    '連想配列にデータを格納
    For i = 1 To UBound(myList)

        '空欄じゃなければ
        If Not myList(i, 1) = Empty Then
            If Not myDic.exists(myList(i, 1) & myList(i, 2)) Then

                '重複しない値を取得
                myDic.Add Key:=myList(i, 1) & myList(i, 2), Item:=myList(i, 1) & myList(i, 2)
                
                '重複しない値を別シート転記
                Sht2.Cells(j, 1) = myList(i, 1)
                Sht2.Cells(j, 2) = myList(i, 2)
                j = j + 1
                
            End If
        End If
    Next i

    '開放
    Set myDic = Nothing
    Set Sht1 = Nothing
    Set Sht2 = Nothing

End Sub

マクロ実行前


 

マクロ実行後

A列&B列の組み合わせで、重複していないリストを別シートへ抽出します。


 
 
この記事がお役に立ちますと幸いです。
 
・【エクセルマクロ】別シート転記を自動処理する方法まとめ
 

【エクセルマクロ】別シート転記(抽出)を自動化する:超便利20選
...

 

「Excel自動化[最強]時短仕事術」
自動化の基礎と時短に役立つテクニック解説書
毎日の定型業務を手際良く行え、大幅な業務効率化を実現!