エクセルマクロで、複数列の重複しないリストを作成するVBAコードをご紹介します。
このページのマクロコードは、コピペで使えます。
動画で動作確認ができます👇
複数列の重複しないリストを作成
以下のマクロを実行すると、複数セルの重複しないリストを作成します。
Sub 重複しないリストを作成()
Dim DicShohin As Variant
Dim LastRow As Long
Dim i As Long
Dim Shohin_Cnt As Long
Dim GetCode As String
Dim GetName As String
Shohin_Cnt = 1
'連想配列
Set DicShohin = CreateObject("Scripting.Dictionary")
'A列の最終行を取得
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
'2行~最終行まで、重複しない 「商品コード」 と 「商品名」 のリストを取得
For i = 2 To LastRow
'A列の値を変数へ
GetCode = Cells(i, 1)
'B列の値を変数へ
GetName = Cells(i, 2)
'重複しないリストを連想配列へ
If Not DicShohin.Exists(GetCode & "_" & GetName) Then
DicShohin.Add GetCode & "_" & GetName, GetCode & "_" & GetName & ","
'重複していない値をF列、G列に転記
Cells(Shohin_Cnt + 1, 6) = Cells(i, 1)
Cells(Shohin_Cnt + 1, 7) = Cells(i, 2)
Shohin_Cnt = Shohin_Cnt + 1
End If
Next i
Set DicShohin = Nothing
End Sub
マクロ実行後
連想配列の中身
「商品コード」と「商品名」の間にアンダーバー「 _ 」を入れているのは、
ウォッチウィンドウで確認するときに値が見やすいかなと思ったためです。
この記事がお役に立ちますと幸いです。
・【エクセルマクロ】重複データを自動処理する使用例まとめ
【エクセルマクロ】重複データを自動操作:超便利13選
...
「Excel自動化[最強]時短仕事術」
自動化の基礎と時短に役立つテクニック解説書
毎日の定型業務を手際良く行え、大幅な業務効率化を実現!
リンク