TOP

VBA-수업 11.2. 워크시트 이벤트(Worksheet Events)

이전 수업에서 우리는 책 전체와 관련된 사건을 고려했습니다. 이제 단일 시트와 관련된 이벤트에 중점을 둘 것입니다.


Worksheet_SelectionChange(워크북 열기)

개별 워크시트에 대한 이벤트 기반 지침을 실행하려면 편집기에서 워크시트를 선택한 다음 Worksheet을 선택합니다.

SelectionChange 이벤트가 기본적으로 추가됩니다. 이 이벤트는 범위의 내용이 변경될 때마다 시작됩니다.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

예를 들어 다음 코드는 하나 이상의 선택한 셀에 채우기 색상을 추가하고 해당 범위가 변경되면 이전에 선택한 범위에서 채우기 색상을 자동으로 제거합니다.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     Static previous_selection As String

     If previous_selection <> "" Then
         '이전 선택에서 배경색 제거:
         Range(previous_selection).Interior.ColorIndex = xlColorIndexNone
     End If

     '현재 선택 항목에 배경색 추가:
     Target.Interior.Color = RGB(181, 244, 0)

     '현재 선택 항목의 주소 저장:
     previous_selection = Target.Address
End Sub

Worksheet_Activate(시트 활성화 이벤트)

이 이벤트는 워크시트가 활성화될 때 발생합니다.

Private Sub Worksheet_Activate()

End Sub

Worksheet_Deactivate(시트 비활성화 이벤트)

이 이벤트는 다른 워크시트가 활성화될 때 발생합니다.

Private Sub Worksheet_Deactivate()

End Sub

Worksheet_BeforeDoubleClick(셀 더블클릭 이벤트)

이 이벤트는 워크시트 셀을 두 번 클릭할 때 발생합니다.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

End Sub

Worksheet_BeforeRightClick(오른쪽 클릭 전 이벤트)

이 이벤트는 워크시트를 마우스 오른쪽 버튼으로 클릭하기 전에 발생합니다.

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

End Sub

Worksheet_Calculate(워크시트 계산 이벤트)

이 이벤트는 워크시트의 데이터가 계산되거나 다시 계산될 때마다 발생합니다.

Private Sub Worksheet_Calculate()

End Sub

Worksheet_Change(셀 내용 변경 이벤트)

이 이벤트는 해당 시트의 셀 내용이 변경될 때마다 발생합니다.

Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

Worksheet_FollowHyperlink(링크 클릭 이벤트)

이 이벤트는 링크(하이퍼텍스트)를 클릭할 때 발생합니다.

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

End Sub

모든 이벤트를 일시적으로 비활성화합니다.

이벤트 없이 코드를 실행하려면 다음과 같이 코드 두 줄 사이에 코드를 삽입하세요.

 Application.EnableEvents = False '=> 이벤트 비활성화
 '몇 가지 지침...
 Application.EnableEvents = True '=> 이벤트를 다시 활성화