반응형
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로 알림이 옵니다.
반응형
'프로젝트 및 실습 > VBA' 카테고리의 다른 글
[VBA] Access DB 내 모든 테이블 List 출력 (0) | 2022.07.14 |
---|---|
[VBA] Access DB 연결 및 Select 실행 (0) | 2022.07.14 |
[VBA] Protected, Lock을 이용해 시트 잠그기 (0) | 2022.06.14 |
[VBA] Progressbar 사용법 (0) | 2022.06.14 |
[VBA] 리본메뉴에 내가 만든 매크로 추가 (0) | 2022.04.28 |