【VBA】重複データをエラー処理付きで削除する方法
日々の業務で大量のデータを扱う中、重複したデータは作業時間を大幅に浪費します。この記事では、VBAを使って簡単に重複データを削除し、業務効率化を図る方法を紹介します。
サンプルコード
VBA
Option Explicit
Sub RemoveDuplicateData()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
Application.ScreenUpdating = False '画面更新停止
On Error GoTo ErrorHandler 'エラー処理開始
With ws.Sort
.SortFields.Clear
.SortFields.Add Key:=ws.Range("A2:A" & lastRow(ws)), Order:=xlAscending
.SetRange ws.Range("A1:B" & lastRow(ws))
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Dim i As Long, j As Long
For i = ws.Range("A" & lastRow(ws)).End(xlUp).Row To 2 Step -1
If Application.CountIf(ws.Range("A:A"), ws.Cells(i, "A").Value) > 1 Then
ws.Rows(i).Delete
End If
Next i
ErrorHandler:
If Err.Number <> 0 Then MsgBox "エラーが発生しました: " & Err.Description
Application.ScreenUpdating = True '画面更新再開
End Sub
Function lastRow(ws As Worksheet) As Long
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
End Functionよくある質問
Q 元に戻せますか?
A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。
Q エラーが出たら?
A.
シート名や列番号が正しいか確認してください。