이전에는 통합 문서의 이벤트에 대해 알아봤습니다. 이번 시간에는 워크시트의 이벤트에 대해 알아보겠습니다.
1. 워크시트 이벤트
아래 표에 워크시트의 이벤트 몇 가지를 정리해 놓았습니다.
이벤트 | 설명 |
Active | 워크시트가 활성화될 때 발생 |
BeforeDoubleClick | 워크시트에서 더블 클릭할 때 발생 |
BeforeRightClick | 워크시트에서 마우스 오른쪽 버튼을 클릭할 때 발생 |
Calculate | 워크시트가 재계산될 때 발생 |
Change | 워크시트에서 셀의 내용을 변경할 때 발생 |
Deactivate | 워크시트가 비활성화될 때 발생 |
FollowHyperlink | 워크시트에서 하이퍼링크를 클릭할 때 발생 |
PivotTableUpdate | 피벗테이블 보고서를 업데이트하면 발생 |
SelectionChange | 워크시트에서 셀이나 셀 범위를 선택할 때 발생 |
2. 워크시트 이벤트 실제 코딩해 보기
Workbook 이벤트의 경우 코드 창을 열 때 "현재_통합_문서"를 마우스 더블클릭하였지만, 이번에는 워크시트 이벤트를 작성하려고 하는 것이므로 워크시트를 선택하고 마우스 더블클릭을 하여 코드 창을 엽니다.
Visual Basic Editor를 여는 방법은 이전 글을 확인하세요.
① Activate
Visual Basic Editor를 열고 좌측에서 "Sheet1"을 마우스 더블클릭하여 코드창을 연 다음 아래와 같이 코딩을 작성합니다. 꼭 "Sheet1"이 아니라도 상관없습니다. 원하시는 시트를 선택하셔서 마우스 더블클릭하시면 됩니다.
Private Sub Worksheet_Activate()
MsgBox ActiveSheet.Name & "워크시트가 활성화 되었습니다.", , "Worksheet_Activate"
End Sub
코드를 작성하고 실행을 하면 [그림 1]과 같은 찾이 뜹니다. 코드 내용 중에서 'ActiveSheet.Name'은 활성화된 시트의 이름을 가져옵니다.
② Deactivate
Visual Basic Editor를 열고 좌측에서 "Sheet1"을 마우스 더블클릭하여 코드 창을 연 다음 아래와 같이 코딩을 작성합니다.
Private Sub Worksheet_Deactivate()
MsgBox Me.Name & "워크시트가 비활성화되었습니다.", , "Worksheet_Deactivate"
End Sub
코드를 작성하고 실행을 하면 [그림 2]와 같은 메시지 창이 출력됩니다.
③ Change
Visual Basic Editor를 열고 좌측에서 "Sheet1"을 마우스 더블클릭하여 코드창을 연 다음 아래와 같이 코딩을 작성합니다.
Private Sub Worksheet_Change(ByVal Target As Range)
Target.Font.ColorIndex = 8
End Sub
코드를 작성하고 엑셀 Sheet1으로 이동하여 임의의 셀에 문자나 숫자를 입력하면 글 색상이 검정색이 아닌 하늘색으로 출력되는 것을 보실 수 있습니다.
④ SelectionChange
Visual Basic Editor를 열고 좌측에서 "Sheet1"을 마우스 더블클릭하여 코드창을 연 다음 아래와 같이 코딩을 작성합니다.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target.Font.ColorIndex = 5
End Sub
코드를 작성하고 엑셀 Sheet1으로 이동하여 데이터가 입력되어 있는 임의의 셀을 클릭하면 글 색상이 파란색으로 변경되는 것을 보실 수 있습니다.
'엑셀 > VBA' 카테고리의 다른 글
VBA로 업체별 납품 품목 자동으로 작성되어 정리되도록 하기 I (0) | 2021.08.11 |
---|---|
VBA 사용자 정의 폼을 사용하여 원하는 폼 만들어보기 (0) | 2021.08.07 |
VBA 이벤트와 이벤트 프로시저 삽입하고 실행해보기 II (0) | 2021.07.09 |
VBA 이벤트와 이벤트 프로시저 삽입하고 실행해보기 I (0) | 2021.07.09 |
VBA로 간단한 입력과 출력 실행해보기 (0) | 2021.07.07 |