본문 바로가기

엑셀/VBA

VBA 이벤트와 이벤트 프로시저 삽입하고 실행해보기 III

반응형

이전에는 통합 문서의 이벤트에 대해 알아봤습니다. 이번 시간에는 워크시트의 이벤트에 대해 알아보겠습니다.

 

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

워크시트_이벤트_Activate_코딩_실행_결과
[그림 1] 워크시트_이벤트_Activate_코딩_실행_결과

코드를 작성하고 실행을 하면 [그림 1]과 같은 찾이 뜹니다. 코드 내용 중에서 'ActiveSheet.Name'은 활성화된 시트의 이름을 가져옵니다. 

 

 

 

② Deactivate

  Visual Basic Editor를 열고 좌측에서 "Sheet1"을 마우스 더블클릭하여 코드 창을 연 다음 아래와 같이 코딩을 작성합니다.

 

더보기

Private Sub Worksheet_Deactivate()
    MsgBox Me.Name & "워크시트가 비활성화되었습니다.", , "Worksheet_Deactivate"
End Sub

코드를 작성하고 실행을 하면 [그림 2]와 같은 메시지 창이 출력됩니다.

워크시트_이벤트_Deactivate_코딩_실행_결과
[그림 2] 워크시트_이벤트_Deactivate_코딩_실행_결과

 

③ 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으로 이동하여 데이터가 입력되어 있는 임의의 셀을 클릭하면 글 색상이 파란색으로 변경되는 것을 보실 수 있습니다.

 

 

 

 

 

 

 

반응형