일을 하다가 뭐라도 조금 편하게 만들어보기 위해서 만든 코드.

수많은 데이터들을 비교하여 체크해야 하는 일로 인해 현재 내가 선택한 위치의 값과 상,하의 데이터와 일일이 비교해보다보니 커서의 위치가 종종 혼동이되어 커서의 위치의 행의 배경을 변경하는 코드를 만들어 보았다.

  • WorkSheet_SelectionChange 는 '셀 선택 영역이 변경될 때' 트리거되는 이벤트로 마우스로 클릭하는 것만으로도 이벤트를 발생한다.

코드의 구성은 나름 간단하다.

1. 현재 행과 이전행을 비교하고 다를시 이전행의 배경색을 기본색상으로 변경한다.

2. 현재 행의 배경색을 노랑색으로 변경한다.

3. 이전행의 값을 현재 행의 값으로 업데이트 한다.

아래의 코드는 A부터 Z까지의 배경색상을 변경하는 코드로 A~D만 변경하고 싶다면 col값을 4로 변경하면 된다.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Static previousRow As Long
    Dim currentRow As Long
    Dim col As Long
    
    currentRow = Target.Row
    ' Change the range of columns as needed
    ' A = 1, Z=26
    col = 26
    
    ' Check if the current row is different from the previous row
    If currentRow <> previousRow Then
        ' Set the background color of the previous row back to white for columns A:Z
        If previousRow > 0 Then
            For i = 1 To col
                Me.Cells(previousRow, i).Interior.ColorIndex = xlNone ' Set to default white
            Next i
        End If
        ' Set the background color to yellow for columns A:Z in the current row
        For j = 1 To col
            Me.Cells(currentRow, j).Interior.Color = RGB(255, 255, 0) ' Set to yellow
        Next j
        
        ' Update the previous row to the current row
        previousRow = currentRow
    End If
End Sub

 

Posted by 샌츠
,