loading

Web.World/Tip.Cad.De.Model.Font.

엑셀에서 선택한 셀 강조하기(색상 변경)

나에+ 2023. 3. 18. 00:34
반응형

Ablebits의 글이다. 이런 건 오피스에서 기본으로 추가해주면 좋겠는데 이러한 팁이 나온지 몇 년이 지난 지금도 그런 건 없는게 조금 아쉽긴하다. 그리고 관련 내용은 유튜브에도 많은 사람들이 등록해놨더라. 사는 거 생각하는 건 대게 다 비슷하지 않나 싶다(.....).

 

셀 고정을 이용하거나, 그냥 복사(Ctrl+C)를 누르면 선택된 셀에 표시가 되는 걸 이용해도 되지만, Ablebits에선 VBA를 사용하거나, 조건부 서식을 사용하는 방법등을 알려주더라. 오피스에서 사용되는 색상 팔레트는 여기 참조. 코드에서 색상(38, 24)를 입맛에 맞게 수정하고, 활성 행만 강조하고 싶으면 관련 부분(.EntireColumn.Interior.ColorIndex = 24)를 삭제하면 된다. 반대 역시 마찬가지.

 

ALT+F11 눌러서 VBA 편집기 열고, 적용하고자하는 시트에 아래 내용 복붙합시다. 다만 이 기능을 사용하면 셀 배경 기능이 동작하지 않고, 실행 취소 기능이 동작하지 않게 되니(....) 조심합시다.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Cells.Count > 1 Then Exit Sub
  Application.ScreenUpdating = False 

  'Clear the color of all cells
  Cells.Interior.ColorIndex = 0
  With Target
    'Highlight row and column of the selected cell
    .EntireRow.Interior.ColorIndex = 38
    .EntireColumn.Interior.ColorIndex = 24
  End With
	
  Application.ScreenUpdating = True
End Sub

위 방법이 미묘한 경우에(수정할 거 없이 보는 경우라면 좋긴 하지만) 조건부 서식을 사용하는 방법은 강조할 데이터 영역 선택 > 조건부 서식 > 새 규칙 > 수식을 사용하여 서식을 지정할 셀 결정을 선택한 뒤, 규칙 설명 편집 부분에 다음을 적어주면 된다.

 

[행 강조]

=CELL("row")=ROW()

[열 강조]

=CELL("col")=COLUMN()

[행과 열 모두 강조]

=OR(CELL("row")=ROW(), CELL("col")= COLUMN())

 

를 입력하고, 서식...을 눌러서 채울 색상을 지정하면 된다. 다만 이 경우에 시트를 수동으로 다시 계산해야 하는 만큼 F9를 눌러야만 표시된다고. 그렇기에 VBA과 같이 사용한다고 한다.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Target.Calculate
End Sub

다만 이러면 큰 파일의 경우 엑셀이 느려지거나 버벅이게 되고, 엑셀 2007 이후 버전이 필요하다(....).

 

Ablebits에서 권장하는 VBA와 조건부 서식 모두를 사용한 가장 무난한 방법은 다음과 같다.

 

먼저 통합 문서에 새 빈 시트를 추가한 뒤, 이름을 Helper Sheet로 만들어 둔다. 이후 셀은 숨겨도 무방하다. 강조 표시를 구현하려는 워크 시트에 다음과 같은 VBA(Ctrl+F11) 코들르 넣어주자.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Application.ScreenUpdating = False

  Worksheets("Helper Sheet").Cells(2, 1) = Target.Row
  Worksheets("Helper Sheet").Cells(2, 2) = Target.Column

  Application.ScreenUpdating = True
End Sub

이후 강조표시할 데이터 세트를 선택하고, 조건부 규칙을 만들면 되는데, 이번에는 활성행의 강조는 =ROW()='Helper Sheet'!$A$2 라고 적어주면 된다.(서식 눌러서 채우기 색 추가 필요) 위 코드보면 알겠지만 Helper Sheet의 A2, B2에 행과 열 번호가 기록되고, 활성화된 열을 강조하기 위해선 =COLUMN()='Helper Sheet'!$B$2 라고 적어주고, 채우기 색상을 선택해주면 된다.

 

행과 열 모두 강조하기 위해선 =OR(ROW()='Helper Sheet'!$A$2, COLUMN()='Helper Sheet'!$B$2) 라고 적고, 채우기 색상을 정하면 되니 참조합시다.

반응형