
Excel에서 선택한 셀 강조 하는 매크로를 만들어 보자.
선택한 셀 강조
예시를 먼저 보자.
전체 셀을 범위로 지정했다.
행과 열을 모두 강조하는 가로 + 세로 코드는 채우기 지정하여 셀 강조.
행만 강조하는 가로 코드는 아래쪽 테두리 지정하여 셀 강조.
가로 + 세로
가로
매크로 최소화
- 하단에 있는 [시트의 이름] » 오른쪽 클릭
- [코드 보기]
- 상단 ‘(일반)’ 선택 » [Worksheet]
- 기본 입력되는 코드 사이에 Target.Calculate 넣기
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target.Calculate
End Sub - 다시 시트로 돌아가기 » 범위 지정 » [조건부 서식] » [새 규칙] » [수식을 사용하여 서식을 지정할 셀 결정]
- 조건 지정
가로 + 세로
=OR(ROW()=CELL("Row"),column()=cell("col"))
가로=ROW()=CELL("ROW")
- 서식 지정
가로 + 세로
[채우기] » [다른 색(M)…] » [사용자 지정] » 16진수: #FFC0CB 입력 » [확인] » [확인] » [확인]
가로[테두리] » 선 스타일: 중간 두께의 실선 테두리 » 테두리 유형: 아래쪽에 있는 테두리 » [색(C):] » [다른 색(M)…] » [사용자 지정] » 16진수: #FFC0CB 입력 » [확인] » [확인] » [확인]
매크로만 사용
- 하단에 있는 [시트의 이름] » 오른쪽 클릭
- [코드 보기]
- 상단 ‘(일반)’ 선택 » [Worksheet]
- 기본 입력되는 코드 사이에 Target.Calculate 넣기
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target.Calculate
End Sub - 조건 지정
가로 + 세로
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target.Calculate
Static PrevRow As Range, PrevColumn As Range
If Not PrevRow Is Nothing Then ' 선택되지 않은 셀
End If
If Target.Row > 0 Or Target.Column > 0 Then ' 선택된 셀을 기준으로 행과 열 모두 강조 만약 첫번째 행을 제외하고 표시되게 하고싶다면 If Target.Row > 1 Or Target.Column > 0 Then 또는 If Target.Row >= 2 Or Target.Column > 0 Then 사용
End If
End Sub가로Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target.Calculate
Static PrevRow As Range
If Not PrevRow Is Nothing Then ' 선택되지 않은 셀
End If
If Target.Row > 0 Then ' 선택된 셀을 기준으로 행 강조 만약 첫번째 행 제외하고 표시되게 하고 싶다면 If Target.Row > 1 Then 또는 If Target.Row >= 2 Then 사용
End If
End Sub - 서식 지정
가로 + 세로
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target.Calculate
Static PrevRow As Range, PrevColumn As Range
If Not PrevRow Is Nothing Then
PrevRow.Interior.Color = xlNone
PrevColumn.Interior.Color = xlNone
End If
If Target.Row > 0 Or Target.Column > 0 Then
Set PrevRow = Rows(Target.Row)
Set PrevColumn = columns(Target.Column)
With PrevRow.Interior
.Color = RGB(255, 192, 203) ' #FFC0CB
End With
With PrevColumn.Interior
.Color = RGB(255, 192, 203) ' #FFC0CB
End With
End If
End Sub가로Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target.Calculate
Static PrevRow As Range
If Not PrevRow Is Nothing Then
PrevRow.Borders(xlEdgeBottom).LineStyle = xlNone
End If
If Target.Row > 0 Then
Set PrevRow = Rows(Target.Row)
With PrevRow.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
.Color = RGB(255, 192, 203) ' #FFC0CB
End With
End If
End Sub
참고
귀국 2년차 한국 생존기 - 엑셀 매크로 만들기 선택한 셀 중심으로 자동 컬러 크로스라인 표시하기 예제파일
Microsoft Learn - Visual Basic for Applications - Object model (Excel)