목차
이 튜토리얼에서는 VBA를 사용하여 셀 내에서 중복 단어 또는 텍스트 문자열을 강조 표시하는 방법을 보여줍니다.
Excel 조건부 서식을 사용하면 생각할 수 있는 모든 가능한 방법으로 중복을 강조 표시할 수 있습니다. 첫 번째 발생 유무, 단일 열 또는 여러 열, 연속 중복 셀 및 키 열의 동일한 값을 기반으로 하는 전체 행. 그러나 평소와 같이 "그러나"가 있습니다. 조건부 서식 규칙은 셀 수준에서 작동하지만 전체 셀이 아닌 중복 텍스트를 강조 표시할 수 있습니다. 이것은 매크로에서만 수행할 수 있습니다. VBA에 대한 경험이 없더라도 서둘러 이 페이지를 닫지 마십시오. 여기에서 바로 사용할 수 있는 코드 예제와 이를 워크시트에서 사용하는 방법에 대한 자세한 지침을 찾을 수 있습니다.
텍스트 대소문자를 무시하고 셀에서 중복 단어 강조표시
이 예제는 아래 이미지와 같이 빨간색 글꼴 색상으로 셀 내의 중복 단어 또는 텍스트 문자열을 음영 처리하는 방법을 보여줍니다. 소문자와 대문자는 같은 문자로 취급됩니다. 예를 들어 orange , ORANGE 및 Orange 는 동일한 단어로 간주됩니다.
The 매크로의 코드는 다음과 같습니다.
Public Sub HighlightDupesCaseInsensitive() Dim Cell As Range Dim Delimiter As String Delimiter = InputBox( "셀에서 값을 구분하는 구분 기호 입력" , "구분 기호" , ", " ) For Each Cell InApplication.Selection Call HighlightDupeWordsInCell(Cell, Delimiter, False ) Next End Sub Sub HighlightDupeWordsInCell(Cell As Range, optional Delimiter As String = " " , optional CaseSensitive As Boolean = True ) Dim text As String Dim words() As String Dim word As String Dim wordIndex, matchCount, positionInText As Integer If CaseSensitive Then words = Split(Cell.Value, Delimiter) Else words = Split(LCase(Cell.Value), Delimiter) End If For wordIndex = LBound (words) To UBound (words) - 1 단어 = words(wordIndex) matchCount = 0 For nextWordIndex = wordIndex + 1 To UBound (words) If word = words(nextWordIndex) Then matchCount = matchCount + 1 End If Next nextWordIndex If matchCount > 0 그러면 텍스트 = "" For Index = LBound(단어) To UBound(단어) text = text & words(Index) If (words(Index) = word) Then Cell.Characters(Len(text) - Len(word) + 1, Len(word)).Font.Color = vbRed End If text = text & Delimiter Next End If Next wordIndex End Sub셀에서 중복 텍스트 강조 대소문자 구분
대부분의 경우 Excel에서 텍스트 항목으로 작업할 때 대소문자를 무시하는 경향이 있습니다. 그러나 특정 상황에서는 텍스트의 대/소문자가 중요합니다. 예를 들어 ID, 비밀번호 또는 이와 유사한 기타 레코드를 처리하는 경우 1-AA , 1-aa 및 1-Aa 는 중복되지 않으며 강조 표시해서는 안 됩니다.
이 경우,다음 버전의 코드를 사용합니다.
Public Sub HighlightDupesCaseSensitive() Dim Cell As Range Dim Delimiter As String Delimiter = InputBox( "Enter the delimiter that seperate values in a cell" , "Delimiter" , ", " ) For Each Cell In Application.Selection Call HighlightDupeWordsInCell(Cell, Delimiter, True ) Next End Sub Sub HighlightDupeWordsInCell(Cell As Range, optional Delimiter As String = " " , optional CaseSensitive As Boolean = True ) Dim text As String Dim words() As String Dim word As String Dim wordIndex, matchCount, positionInText As Integer If CaseSensitive Then words = Split(Cell.Value, Delimiter) Else words = Split(LCase(Cell.Value), Delimiter) End If For wordIndex = LBound (words) To UBound ( words) - 1 word = words(wordIndex) matchCount = 0 For nextWordIndex = wordIndex + 1 To UBound (words) If word = words(nextWordIndex) Then matchCount = matchCount + 1 End If Next nextWordIndex if matchCount > 0 그러면 텍스트 = "" For Index = LBound(단어) To UBound(단어) text = text & words(Index) If (words(Index) = word) Then Cell.Characters(Len(text) - Len(word) + 1, Len(word)).Font.Color = vbRed End If text = text & Delimiter Next End If Next wordIndex End SubExcel에서 매크로를 사용하여 중복 단어를 강조 표시하는 방법
VBA를 처음 사용하는 경우 아래 단계별 지침을 통해 편안하게 안내할 수 있습니다. . 숙련된 사용자는다운로드 링크를 선택하고 나머지는 건너뛰세요 :)
통합 문서에 코드 추가
먼저 Excel 통합 문서에 매크로의 코드를 삽입합니다. 방법은 다음과 같습니다.
- 중복 항목을 강조 표시할 통합 문서를 엽니다.
- Alt + F11을 눌러 Visual Basic Editor를 엽니다.
- 왼쪽 창에서 ThisWorkbook 을 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴에서 삽입 > 모듈 을 선택합니다.
- 코드 창에 코드를 붙여넣습니다.
- 나중에 사용할 수 있도록 매크로를 보관하려면 통합 문서를 매크로가 활성화된 .xlsm 파일로 저장해야 합니다.
또는 샘플 통합 문서를 다운로드하고 여기에서 매크로를 실행할 수 있습니다. 샘플 통합 문서에는 다음 매크로가 포함되어 있습니다.
- HighlightDupesCaseInsensitive - 문자 대소문자를 무시하고 셀 내의 중복을 음영 처리합니다.
- HighlightDupesCaseSensitive - 하이라이트 대소문자를 고려하여 셀에 중복.
자세한 내용은 Excel에 VBA 코드 삽입 방법을 참조하세요.
매크로 실행
코드 사용 자신의 통합 문서 또는 다운로드한 샘플 파일에 추가하고 열려면 다음과 같은 방식으로 매크로를 실행합니다.
- 워크시트에서 중복 텍스트를 강조 표시할 셀을 선택합니다. 하나의 범위이거나 인접하지 않은 여러 범위일 수 있습니다.
- Alt + F8 키를 누릅니다.
- 관심 있는 매크로를 선택하고 실행 을 클릭합니다.
- 매크로에서 구분 기호를 지정하도록 요청합니다.선택한 셀의 값을 구분합니다. 미리 설정된 구분 기호(여기서는 쉼표와 공백)가 입력 상자에 자동으로 나타납니다. 필요에 따라 기본 구분 기호를 그대로 두거나 다른 구분 기호를 입력한 다음 확인을 클릭합니다.
잠시 후 선택한 셀은 빨간색(또는 코드에 설정된 글꼴 색상)으로 음영 처리됩니다.
팁. 셀 내에서 중복 항목을 빠르게 제거 하려면 Ultimate Suite에 포함된 많은 시간 절약 도구 중 하나인 중복 하위 문자열 제거를 활용할 수 있습니다.
필요에 맞게 코드를 조정하는 방법
이러한 사용 참고 사항과 VBA에 대한 기본 지식이 있으면(또는 아래 지침을 면밀히 따름) 필요에 따라 코드를 쉽게 수정할 수 있습니다.
동일한 모듈에 배치
알다시피 두 매크로( HighlightDupesCaseSensitive 및 HighlightDupesCaseInsensitive )는 HighlightDupeWordsInCell 함수를 호출합니다. 위의 두 매크로의 차이점은 해당 함수에 전달되는 세 번째 매개 변수(CaseSensitive)에만 있습니다.
대소문자 구분 검색의 경우 TRUE로 설정됩니다.
Call HighlightDupeWordsInCell(Cell, Delimiter, True)
대소문자를 구분하지 않는 검색의 경우 FALSE로 설정됩니다.
Call HighlightDupeWordsInCell(Cell, Delimiter, False)
매크로가 작동하려면 HighlightDupeWordsInCell 기능의 코드를 와 같은 모듈매크로.
구분 기호
실행 시 매크로는 선택한 셀에서 단어/문자열을 구분하는 구분 기호를 지정하도록 요청합니다. 기본 구분 기호는 쉼표와 공백(", ")이며 InputBox에 미리 설정되어 있습니다.
Delimiter = InputBox("Specify the delimiter that separates values in a cell", "Delimiter", ", ")
코드에서 다른 문자를 자유롭게 사용할 수 있습니다. 사전 정의된 구분 기호로 사용됩니다.
색상
기본적으로 HighlightDupeWordsInCell 기능은 중복을 빨간색 글꼴 색상으로 음영 처리합니다. 색상은 다음 줄에 정의되어 있습니다.
Cell.Characters(positionInText, Len(word)).Font.Color = vbRed
여기서 vbRed는 일종의 VBA 색상 상수입니다. 듀프를 다른 색상으로 표시하려면 vbRed를 vbGreen, vbYellow, vbBlue 등과 같은 다른 상수로 바꿀 수 있습니다. 지원되는 색상 상수 목록은 여기에서 찾을 수 있습니다.
그게 Excel 셀에서 중복 단어를 강조 표시하는 방법. 읽어 주셔서 감사합니다. 다음 주 블로그에서 뵙기를 바랍니다!
사용 가능한 다운로드
셀에서 중복 항목을 강조표시하는 코드 예제(.xlsm 파일)
Ultimate Suite 14일 전체 기능 버전(.exe 파일)