본문 바로가기
엑셀 팁(excel)/엑셀 매크로 VBA

엑셀 중복 값 삭제 매크로(vba) #7

by Emlog 2023. 12. 10.

중복 값 삭제 매크로

여러 셀에 산재된 중복된 삭제하는 것은 매크로로 한방에 삭제하는 것이 제일 편하다. 중복값 삭제 기능은 데이터 탭에 중복된 항목 제거 아이콘을 클릭하여 사용할 수 있다. 하지만 매크로보다 간단한 과정은 아니다. 이번 매크로는 셀 범위를 지정 선택하고 매크로 실행을 통해 중복값을 삭제한다.

중복된 값이 있다면 그들 중 하나만 남기고 삭제한다. 예를 들어 내가 지정한 범위의 셀이 3개이다. 이 셀에 전부 동일한 텍스트가 포함되어 있다면 3개 중에 1개의 값만 남기고 2개는 삭제하는 방식이다. 조건부 서식의 중복값을 강조하는 것과는 차이가 있다.

 

 

 

 

엑셀 매크로 중복값 삭제 예시1

매크로 동작 및 코드(중복 값 삭제)

간단한 동작만큼 매크로 방법 및 순서도 간단하다.

  • 셀을 선택.
  • 매크로 실행.
  • 중복값 삭제.
  • 중복된 값 중 하나를 제외한 나머지 삭제.
  • 메시지 박스 출력.
Sub 중복값삭제()
    Dim selectedRange As Range
    Dim cell As Range
    Dim cellValue As Variant
    
    Set selectedRange = Selection
    
    For Each cell In selectedRange
        cellValue = cell.value
        If WorksheetFunction.CountIf(selectedRange, cellValue) > 1 Then
            cell.ClearContents
        End If
    Next cell
    
    MsgBox "중복값 삭제 완료", vbInformation
End Sub

엑셀 매크로 중복값 삭제 예시2

매크로 실행(중복 값 삭제)

ER1~20번의 난수를 예를 들었다. 총 20개의 에러 발생 코드가 무작위로 반복되어 있다. 중복값을 삭제하려는 범위를 선택하고 매크로를 실행하면 중복된 값이 있다면, 1개의 값을 남기고 모두 삭제한다. 애초에 중복되지 않은 값은 당연히 그대로 존재한다. 결과를 확인하면 총 20개의 에러코드만 남은 것을 볼 수 있다. 매크로 진행이 끝났음을 알리는 메시지 박스도 빠짐없이 작성되었다.

엑셀 매크로 중복값 삭제 예시3
엑셀 매크로 중복값 삭제 예시4
엑셀 매크로 중복값 삭제 예시5


코드가 간단한 만큼 실행도 깔끔한 매크로이다. 한 가지 문제점은 있다. 혹, 모든 셀을 전체 선택하여 매크로를 실행하지 않았으면 한다. 선택하는 셀의 수에 대한 제한 기능은 있지 않다. 이는 멈추거나 무한로딩할 수 있으니 주의가 필요하다.

 

엑셀 매크로#7.txt
0.00MB

 


매크로 작성은 어렵고 시간이 걸린다. 하지만 한번 작성해 두면 꺼내 쓰기 편하다. 꼭 그게 아니더라도 누군가 해놓은 매크로를 저장하여 사용하면 엑셀 작업의 효율도 올라가고 소중한 시간도 아낄 수 있다. 매크로(VBA)는 코드로 작성되어 되어 있다 보니 지레 겁부터 먹고 부담을 가질 수 있으나 사용하는 데는 전혀 어렵지 않다.

 

엑셀 매크로(vba)로 편하게 엑셀하기

 

'엑셀 매크로로 편하게 엑셀하기

사무실 일잘러의 가장 필요한 팁들

minidrawer.tistory.com

 

 

 

 

 

 

 

엑셀 매크로 중복값 삭제