본문 바로가기
개발/엑셀

한셀처럼 엑셀에서 vba를 이용하여 선택한 셀의 행과 열 강조하기

by 잭앤슈 2024. 8. 15.

한셀에서는 아래 이미지처럼 선택한 셀의 행과 열이 옅은 색으로 강조되는데,

엑셀에서는 마땅히 기능화되어있지 않아서 vba로 흉내낼 수 있는 방법이 있어 공유해봅니다.

한셀 선택 셀의 행과 열 강조하기

 

엑셀에서 개발 도구 - Visual Basic을 클릭하거나

Alt+F11키를 눌러 VBA를 띄운 다음 적용할 시트에 아래 코드를 입력하고 닫으면

셀을 선택할 때마다 행과 열이 강조되어 표시됩니다.

엑셀매크로파일로 저장하셔서 업무에 활용하시면 될 듯 합니다.

 

Private Sub Worksheet_SelectionChange(ByVal Target As RANGE)
    Dim FORMULANAME As String, COLOR As Long, FORMATORDER As Integer, RANGE As RANGE
    Dim FORMATCON As FormatCondition, FLAG As Boolean, FONTBOLD As Boolean

    FORMULANAME = "=N(""선택한 셀"")+TRUE"
    COLOR = RGB(250, 250, 240)
    FORMATORDER = 1
    FONTBOLD = True
    Set RANGE = ActiveCell
    GoSub UpdateFormatCondition

    FORMULANAME = "=N(""선택한 셀의 모든 행"")+TRUE"
    COLOR = RGB(230, 240, 220)
    FORMATORDER = 2
    FONTBOLD = False
    Set RANGE = Rows(ActiveCell.Row)
    GoSub UpdateFormatCondition

    FORMULANAME = "=N(""선택한 셀의 모든 열"")+TRUE"
    COLOR = RGB(230, 240, 220)
    FORMATORDER = 3
    FONTBOLD = False
    Set RANGE = Columns(ActiveCell.Column)
    GoSub UpdateFormatCondition

    Exit Sub
UpdateFormatCondition:
    For Each FORMATCON In Me.Cells.FormatConditions
        With FORMATCON
            FLAG = (.Formula1 = FORMULANAME)
            If FLAG Then
                .ModifyAppliesToRange RANGE
                .Priority = FORMATORDER
                Exit For
            End If
        End With
    Next FORMATCON
    If Not FLAG Then
        With RANGE.FormatConditions.Add(xlExpression, , FORMULANAME)
            .Font.Bold = FONTBOLD
            .Borders.LineStyle = xlContinuous
            .Borders.Weight = xlThin
            .Borders.ColorIndex = 15
            .Interior.COLOR = COLOR
            .Interior.Pattern = xlSolid
            .Priority = FORMATORDER
            .StopIfTrue = False
        End With
    End If
    Return
End Sub

 

아래는 실제 동작화면 갈무리 떠봤습니다.

 

위 코드가 적용된 엑셀파일을 첨부해봅니다.

한셀처럼.zip
0.01MB

 

참고로 위 엑셀파일 열 때 

아래 이미지처럼 보안 경고 뜨면 콘텐츠 사용 클릭해야 정상 동작합니다.

 

즐거운 하루 되시길..