이전 글에서 VBA Workbook 이벤트 프로시저들에 대해서 알아봤으며 Open 이벤트 프로시저를 실제 예제로 알아봤습니다. 이번에는 나머지 이벤트 프로시저들을 실제 예제로 확인해보겠습니다.
1. Activate
Open 이벤트 프로시저의 경우는 통합 문서가 열릴 때 실행되는 프로시저라면 Activate 이벤트 프로시저는 통합 문서가 활성화될 때 실행되는 프로시저입니다.
Visual Basic Editor를 실행하고 '현재_통합_문서'를 더블 클릭한 후 개체 선택 사각 박스에서 'Workbook'을 선택합니다. 그리고 이벤트 프로시저 선택 사각 박스에서는 'Activate'를 선택합니다. 코드창에 다음과 같이 코드를 작성합니다. 개체 및 이벤트 프로시저 선택 사각 박스에 대해서는 이전 글에 설명되어 있으니 참조하기 바랍니다.
Private Sub Workbook_Activate()
MsgBox "통합 문서가 활성화 되었습니다.", , "WorkBook_Activate"
End Sub
코드를 작성하고 실행을 하면 [그림 1]과 같은 창이 출력됩니다.
2. Deactivate
Deactivate 이벤트 프로시저는 통합 문서가 비활성화될 때 실행됩니다.
이번에는 이벤트 프로시저 선택 사각 박스에서 'Deactivate'를 선택하고 다음과 같은 코드를 작성합니다.
Private Sub Workbook_Deactivate()
MsgBox "통합 문서가 비활성화 되었습니다.", , "WorkBook_Deactivate"
End Sub
코드를 작성하고 실행하면 [그림 2]와 같은 창이 출력됩니다.
3. SheetActivate
SheetActivate 이벤트 프로시저는 시트가 활성화될 때 발생하며 통합 문서에 있는 모든 시트가 대상입니다.
이번에는 이벤트 프로시저 선택 사각 박스에 'SheetActivate'를 찾아 선택하고 다음 코드를 코드창에 작성합니다.
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
MsgBox Sh.Name & " 시트가 활성화되었습니다. ", , "Workbook_SheetActivate"
End Sub
코드를 작성하고 활성화된 시트에서 다른 시트를 클릭하면 [그림 3]과 같은 창이 출력됩니다.
4. SheetDeactivate
SheetDeactivate는 시트가 비활성화될 때 발생하며 통합 문서에 있는 모든 시트를 대상으로 합니다.
이벤트 프로시저 선택 사각 박스에서 'SheetDeactivate'를 선택하고 아래 코드를 코드창에 작성합니다.
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
MsgBox Sh.Name & " 시트가 비활성화되었습니다. ", , "Workbook_SheetDeactivate"
End Sub
코드를 작성하고 활성화된 시트에서 다른 시트를 클릭하면 [그림 4]과 같은 창이 출력됩니다.
5. NewSheet
NewSheet는 새로 시트를 삽입할 경우 발생합니다.
이벤트 프로시저 선택 사각 박스에서 'NewSheet'를 선택하고 아래 코드를 코드창에 작성합니다.
Private Sub Workbook_NewSheet(ByVal Sh As Object)
MsgBox Sh.Name & " 시트가 추가되었습니다. ", , "Workbook_NewSheet"
End Sub
코드를 작성하고 새로운 시트를 추가하면 [그림 5]와 같은 창이 출력됩니다.
6. SheetBeforeDoubleClick
SheetBeforeDoubleClick은 워크시트 내에서 마우스로 더블 클릭할 때 발생합니다.
이벤트 프로시저 선택 사각 박스에서 'SheetBeforeDoubleClick'를 선택하고 아래 코드를 코드창에 작성합니다.
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
MsgBox Sh.Name & " 시트에서 더블클릭하셨습니다. ", , "Workbook_SheetBeforeDoubleClick"
End Sub
코드를 작성하고 워크시트에서 마우스 더블클릭을 하면 [그림 6]과 같은 창이 출력됩니다.
7. SheetBeforeRightClick
SheetBeforeRightClick는 워크시트에서 마우스 오른쪽 버튼을 클릭할 때 발생합니다.
이벤트 프로시저 선택 사각 박스에서 'SheetBeforeRightClick'를 선택하고 아래 코드를 코드창에 작성합니다.
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
MsgBox Sh.Name & " 시트에서 마우스 우클릭하셨습니다. ", , "Workbook_SheetBeforeRightClick"
End Sub
코드를 작성하고 워크시트에서 마우스 오른쪽 버튼을 클릭하면 [그림 7]과 같은 창이 출력됩니다.
'엑셀 > VBA' 카테고리의 다른 글
VBA 사용자 정의 폼을 사용하여 원하는 폼 만들어보기 (0) | 2021.08.07 |
---|---|
VBA 이벤트와 이벤트 프로시저 삽입하고 실행해보기 III (0) | 2021.07.13 |
VBA 이벤트와 이벤트 프로시저 삽입하고 실행해보기 I (0) | 2021.07.09 |
VBA로 간단한 입력과 출력 실행해보기 (0) | 2021.07.07 |
VBA를 작성하여 엑셀 개체 다루기 (0) | 2021.07.05 |