Event

엑셀 선택셀 강조, 하이라이트

노만e 2025. 8. 23. 05:25

가로+세로 동시 강조로 대용량 시트에서도 실수 0에 가깝게

왜 필요한가? (Pain → Gain)

  • 스크롤 지옥: 열이 10개, 20개 넘어가면 가로로 조금만 스크롤해도 내가 보고 있던 행·열의 기준점을 잃기 쉽습니다.
  • 눈이 먼저 피곤: 머리로 좌표를 계속 맞추려다 보니 피로도↑, 속도↓, 오입력↑.
  • 필터/정렬 후 검증 어려움: 필터링된 상태에서 특정 셀의 **가로줄(행)과 세로줄(열)**을 함께 보지 않으면 맥락 파악이 번번이 틀어집니다.

👉 해결책: 선택한 셀을 기준으로 ‘가로줄 + 세로줄’을 동시에 연노랑으로 칠해 십자가 모양을 만들어 시선을 안내합니다.
행과 열이 한눈에 잡히니, 타이핑 실수·참조 실수·검증 시간이 드라마틱하게 줄어듭니다.

 

무엇이 달라지나? (효과)

  • 즉시 맥락 파악: 선택 셀의 행 전체 + 열 전체가 함께 강조 → 좌표를 외우지 않아도 됩니다.
  • 정확도 향상: SKU, 코드, 금액, 날짜 등 옆·위 데이터 매칭 실수가 크게 줄어듭니다.
  • 속도 개선: 셀 이동만 해도 실시간으로 하이라이트가 따라옴 → 검수/입력 속도↑
  • 집중 유지: 복잡한 표일수록 시선 분산을 줄이고 뇌 부하를 낮춤.

기능 요약

  • 선택한 셀 기준 행 전체(연노랑) + 열 전체(하늘색) 강조(십자가).
  • 선택 셀 자체는 더 분홍색으로 강조(선택점이 또렷).
  • 데이터 영역 안에서만 색칠(헤더/바깥 영역은 제외 가능).
  • 다중 선택 시 자동 비활성화(혼란 방지).
  • 빠른 동작: 지난 강조만 지우고 새로 칠해 대용량에서도 부드럽게.

설치·사용법 (Alt+F11로 바로 적용)

  1. Alt + F11 → VBA 편집기 열기
  2. 프로젝트 탐색기에서 하이라이트를 적용할 워크시트(예: Sheet1 등) 더블클릭
  3. 아래 코드를 그 워크시트 코드창에 붙여넣기
  4. 엑셀로 돌아와 셀을 클릭해 동작 확인

'========================================
' 선택 셀 기준 "십자가(행+열)" 하이라이트 (빠르고 깔끔한 버전)
' - 데이터 테이블 기준점 : A3 기준 CurrentRegion
' - 헤더 2행, 왼쪽 1열은 제외해 데이터영역만 칠함
' - 선택 셀 : 핑크색, 행 : 연노랑, 열 : 하늘색
'========================================
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error GoTo SafeExit
    If Target.CountLarge > 1 Then Exit Sub          '다중 선택 시 동작 안 함

    Application.EnableEvents = False

    Dim base As Range, rTable As Range
    Dim t As Range, rowR As Range, colR As Range

    ' 1) 데이터 영역 정의 (필요 시 A1, 오프셋/리사이즈 값을 바꿔 쓰세요)
    Set base = Me.Range("A1").CurrentRegion
    Set rTable = base.Offset(1).Resize(base.Rows.Count - 1)
    
    ' 2) 이전 하이라이트 제거
     ActiveSheet.UsedRange.Offset(1).Interior.ColorIndex = xlNone  ' 기존 색 지우기
     
    ' 3) 현재 타깃(다중 선택 대비: 첫 셀만 사용)
    Set t = Target.Cells(1, 1)

    ' 4) 행/열 교차 범위 계산
    Set rowR = Intersect(rTable, t.EntireRow)
    Set colR = Intersect(rTable, t.EntireColumn)

    ' 5) 색칠: 연노랑(행), 하/열), 진한 노랑(선택 셀)
    If Not rowR Is Nothing Then rowR.Interior.ColorIndex = 36   '연노랑
    If Not colR Is Nothing Then colR.Interior.ColorIndex = 34   '하늘색
    If Not Intersect(rTable, t) Is Nothing Then
        t.Interior.ColorIndex = 38                              '핑크색(선택점)
    End If


SafeExit:
    Application.EnableEvents = True
End Sub

 

엑셀VBA 선택셀 강조.xlsm
0.06MB