프로젝트 및 실습/VBA

[VBA] Worksheet_change 이벤트 (Sheet 내 값 수정 감지)

jooona 2022. 7. 8. 19:30
반응형

VBA 사용 시 Sheet 내에서 특정 셀의 값이 수정되었을 때 어떤 이벤트를 발생시키고 싶을 때 사용할 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub worksheet_change(ByVal Target As Range)
    Dim KeyCells As Range
   
    Set KeyCells = Range("A1:B2")
    
    
    If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
        
        MsgBox (Target.Address & " : " & Cells(Target.Row, Target.Column).Text)
        
    End If
    
End Sub
cs

 

Worksheet_change 함수를 통해 Sheet에서 변화가 감지되었는지 확인할 수 있고,

Application.intersect를 이용하면 KeyCells라는 Range를 설정해서 특정 셀에서 변화가 감지되었을 경우만 원하는 기능을 수행하도록 제작할 수 있습니다.

 


KeyCells의 범위를알아보기 쉽도록 배경색을 변경해 주었습니다.
KeyCells로 설정한 Range("A1:B2") 내의 값이 수의 의 되면 Msgbox로 알림을 주도록 구현했습니다.

 


위의 사진과 같이 KeyCells의 범위가 아닌 C1의 값을 변경하면 아무 일도 일어나지 않지만,

 


KeyCells 범위에 포함되는 B2의 값을 수정해주면 위의 사진과 같이 MsgBox로 알림이 옵니다.

반응형