본문 바로가기
WeekdayLife/excel

[엑셀] 셀 이동 이벤트(VBA) : SELECTION_CHANGE EVENT

by JO_i 2019. 12. 17.

엑셀 셀 이동 이벤트(VBA) : SELECTION_CHANGE EVENT

VBA가 뭔지 모르던 때 우연히 봤던 블로그 글에서,
FOR/IF 문 챕터에 셀 이동 이벤트로 색이 칠해지는 매크로를 보고,
신기하다고 생각했던 기억이 있다.

 

 

거의 이것때문에, 이거저거 코드 짜는 것에 대한 걸 취미로 스터디 하게 된 것 같다.

 

 

 

신박하기는 하나, 실무에서 사용할 일은 별로 없을 듯.
그래도 이거 하나만 알아도 대부분의 코드에서 응용해서 사용이 가능하다.

 

Private Sub Worksheet_SelectionChange(ByVal Target As Range)    
    rngCount = Target.Count    
        For x = 1 To rngCount
            If IsNumeric(Target(x).Value) = True And Target(x).Value > 0 Then
               Target(x).Value = Target(x).Value + 1                
                '색변경
                Call cCOLOR(Target, x)                
            Else
                Target(x).Value = 1
                '색변경
                Call cCOLOR(Target, x)              
            End If
        Next x
End Sub

Private Sub cCOLOR(ByVal Target As Range, ByVal x As Integer)
    If Target(x).Value <= 55 Then
        Target(x).Interior.ColorIndex = Target(x).Value
    Else
        Target(x).Interior.ColorIndex = Target(x).Value - (55 * Application.WorksheetFunction.RoundDown(Target(x).Value / 55, 0))
    End If
End Sub