Sub TEST3()
With ActiveSheet
'最終行を取得
Dim LastRow
LastRow = .Cells(Rows.Count, "A").End(xlUp).Row
'最終行から2行目までループ
For i = LastRow To 2 Step -1
'2行目から最終行までループ
For j = 2 To LastRow
'自分の行以外で、同じデータの場合
If i <> j And .Cells(i, "A") = .Cells(j, "A") Then
'行を削除
.Rows(i).Delete
Exit For 'ループを終了
End If
Next
Next
End With
End Sub
実行してみます。
重複したデータを削除することができました。
かかった時間は、「35.9 秒」となりました。
つづいて、「RemoveDuplicates」を使って重複データを削除してみます。
「RemoveDuplicates」で重複データを削除
「RemoveDuplicates」で、重複データを削除するVBAコードです。
Sub TEST4()
'重複を削除
ActiveSheet.Range("A1").CurrentRegion.RemoveDuplicates Columns:=1, Header:=xlYes
End Sub
Sub TEST5()
'左の方に、シートをコピー
ActiveSheet.Copy before:=ActiveSheet
End Sub
実行します。
作業用シートを作成
元のシートSheet1の前に、「Sheet1 (2)」を作成できました。
作業用シートから元のシートを参照する場合は、「Next」を使います。
Sub TEST6()
'右のシート名を表示
MsgBox ActiveSheet.Next.Name
End Sub
元シートの名前を取得してみます。
Nextで元シートを参照
元シートの名前「Sheet1」を取得できました。
という感じで、作業用シートを使うことができます。
作業用シートを使って重複の削除
作業用シートを使って、重複を削除してみます。
手順としては、
①作業用シートにデータをコピー
②作業用シートで重複を削除
③元のシートに重複削除したデータを貼り付け
④作業用シートを削除
という流れです。
作業用シートを使って、重複を削除するVBAコードです。
Sub TEST7()
'前の方に、シートをコピー
ActiveSheet.Copy before:=ActiveSheet
With ActiveSheet.Range("A1").CurrentRegion
'重複を削除
.RemoveDuplicates Columns:=1, Header:=xlYes
'重複しないリストを、元のシートに貼り付け
.Copy ActiveSheet.Next.Range("C1")
End With
Application.DisplayAlerts = False
'作業用のシートを削除
ActiveSheet.Delete
End Sub