엑셀 데이터를 사용하다 보면 유니크(Unique) 체크가 필요한 경우가 있습니다.
흔히 기본 Key값(마이크로 액세스에서 사용한 것으로 기억합니다.) , ID 값이죠.
그래서 다양한 중복 체크 방법이 있지만 저는 엑셀에서 기본적으로 제공하는 조건부 서식을 많이 사용합니다.
이미지와 같이 말이죠.
하지만 엑셀을 사용하다보면 행/열 삽입 또는 행/열 삭제 또는 복사 -> 붙여 넣기 등을 하다 보면 엄청 많은 조건부 서식들이 생성됩니다.
예를 들면 바로 위에 있는 이미지처럼 말이죠.
이렇게 조건부 서식이 많아지게 되면 엑셀은 자연스럽게 느려집니다.
또한 일정 개수 이상되면 현재 워크시트에 적용되고 있는 리스트를 불러오는 데에도 시간이 걸리며, 지우기도 어려워집니다.
그래서 일단 먼저 알려드리고 싶은 내용은 현재 시트에 사용되고 있는 조건부 서식 개수를 확인하는 방법입니다.
Cells.FormatConditions.Count
현재 시트에 있는 모든 셀에 존재하는 조건부 서식 개수를 확인할 수 있습니다.
그리고 현재 시트에 있는 모든 조건부 서식을 제거하는 방법은
Cells.FormatConditions.Delete
입니다.
그다음 내가 원하는 조건부 서식을 만드는 방법입니다.
저는 중복 체크를 자주 사용하기 때문에 중복 체크를 설정하는 VBA 코드입니다.
혹시라도 사용하실 분 있으시면 해당 부분 사용하셔도 됩니다.
코드 내용은 아래와 동일합니다.
아래 코드는 A열에 값을 중복 체크하는 조건부 서식이 만들어집니다.
Sub DupleCheck()
Dim D_Address As Range
Set D_Address = Range("a:a")
D_Address.FormatConditions.AddUniqueValues
D_Address.FormatConditions(D_Address.FormatConditions.Count).SetFirstPriority
D_Address.FormatConditions(1).DupeUnique = xlDuplicate
With D_Address.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent2
.TintAndShade = 0
End With
With D_Address.FormatConditions(1).Font
.Color = -16776961
.TintAndShade = 0
End With
D_Address.FormatConditions(1).StopIfTrue = False
End Sub
D_Address의 경우 조건부 서식을 지정하고 싶은 영역입니다.
Interior의 경우는 배경 관련 꾸미기
Font의 경우는 글자색상입니다.
엑셀에서 프리셋으로 설정되어 있는 테마 색상을 VBA코드에서 찾는 방법은 조만간 다시 알려 드리겠습니다.
해당 색상을 설정하여 사용하면 됩니다.
'엑셀 > VBA' 카테고리의 다른 글
VBA로 해당 폴더 내 모든 하위 폴더까지 있는 모든 파일 이름 찾기 (1) | 2024.11.03 |
---|---|
VBA에서 엑셀파일(워크북)을 변수로 지정하기 (0) | 2024.07.06 |
VBA 사진 추가하는 방법 (Shapes.AddPicture) (1) | 2024.04.07 |
Selenium에서 Select 선택 된 값 불러오기 (0) | 2024.03.03 |
VBA 실행 , 계산 속도 빠르게 하기 - 엑셀 수동계산 (0) | 2023.10.21 |
댓글