수천 줄의 데이터가 담긴 엑셀 시트에서 특정 항목을 찾을 때, 보통 어떻게 하시나요? Ctrl + F로 찾기를 하면 셀 하나씩만 이동하기 때문에 한눈에 데이터를 파악하기가 쉽지 않습니다.
오늘은 검색하고 싶은 단어를 입력하면, 그 단어가 포함된 모든 행을 찾아서 형광펜을 칠한 것처럼 자동으로 색깔을 입혀주는 매크로를 소개합니다. 보고서에서 특정 업체나 특정 품목만 골라내어 강조할 때 정말 유용합니다.
1. 하이라이트 기능이 유용한 이유
단순히 셀 하나만 찾는 것이 아니라 해당 행 전체에 색이 칠해지기 때문에, 그 행에 담긴 다른 정보(수량, 단가, 날짜 등)를 동시에 확인하기가 매우 편해집니다. 또한, 조건부 서식을 복잡하게 설정할 필요 없이 버튼 한 번으로 껐다 켰다 할 수 있어 문서가 훨씬 깔끔해집니다.
2. 데이터 검색 및 행 강조 VBA 코드
이 코드는 사용자가 입력한 단어를 시트 전체에서 찾아, 일치하는 데이터가 있는 행의 배경색을 노란색으로 바꿔줍니다.
Alt + F11을 눌러 편집기를 여신 뒤, 삽입 메뉴에서 모듈을 추가하고 아래 내용을 복사해서 넣어보세요.
Sub HighlightSearchRows()
Dim ws As Worksheet
Dim SearchRng As Range
Dim Cell As Range
Dim SearchTerm As String
Set ws = ActiveSheet
' 검색할 단어를 입력받습니다.
SearchTerm = InputBox("강조하고 싶은 검색어를 입력하세요.", "데이터 하이라이트")
' 입력값이 없으면 종료합니다.
If SearchTerm = "" Then Exit Sub
Application.ScreenUpdating = False
' 1. 기존에 칠해진 색상을 먼저 초기화합니다.
ws.Cells.Interior.ColorIndex = xlNone
' 2. 데이터가 있는 범위를 순회하며 검색어를 찾습니다.
' 여기서는 A열부터 데이터가 있는 곳까지를 기준으로 합니다.
Set SearchRng = ws.UsedRange
For Each Cell In SearchRng
' 셀 내용에 검색어가 포함되어 있는지 확인합니다.
If InStr(1, Cell.Value, SearchTerm, vbTextCompare) > 0 Then
' 검색어가 포함된 행 전체에 색상을 입힙니다 (6번: 노란색).
Cell.EntireRow.Interior.ColorIndex = 6
End If
Next Cell
Application.ScreenUpdating = True
MsgBox "'" & SearchTerm & "'이(가) 포함된 항목을 모두 강조했습니다.", vbInformation, "검색 완료"
End Sub
3. 실무 활용 팁
위 코드는 부분 일치(InStr 함수 사용)를 허용합니다. 즉, '유라'라고 검색하면 '유라코퍼레이션', '유라테크' 등이 모두 강조됩니다. 만약 정확히 일치하는 값만 찾고 싶다면 조건을 수정하면 되지만, 실무에서는 부분 검색이 훨씬 활용도가 높습니다.
또한, 강조된 색상을 지우고 싶을 때는 ws.Cells.Interior.ColorIndex = xlNone 코드만 따로 떼어내어 '색상 초기화' 버튼을 만들어두면 아주 편리하게 사용할 수 있습니다.
4. 마치며
데이터가 많아질수록 필요한 정보를 빠르게 시각화하는 능력이 중요해집니다. 오늘 공유해 드린 하이라이트 매크로를 활용해 여러분의 엑셀 시트를 더 직관적이고 스마트하게 관리해 보세요. 업무 효율이 몰라보게 올라갈 것입니다.
'업무 자동화' 카테고리의 다른 글
| 엑셀 대출 이자 계산기 만들기, 원리금 상환 계획표 자동 생성 방법 (0) | 2026.02.13 |
|---|---|
| 엑셀 데이터 증발 방지, 저장할 때마다 자동 백업 파일 만드는 매크로 (0) | 2026.02.12 |
| 엑셀 피벗테이블 새로고침 노가다 끝, 데이터 입력 시 자동 업데이트 방법 (3) | 2026.02.10 |
| 엑셀 파일 합치기 노가다 탈출, 수십 개 파일을 하나로 모으는 자동화 매크로 (1) | 2026.02.09 |
| 엑셀 시트 이름 바꾸기 노가다 끝! 여러 시트 이름 일괄 변경 매크로 (3) | 2026.02.08 |