본문 바로가기

엑셀/VBA

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

반응형

이전 글에서 VBA Workbook 이벤트 프로시저들에 대해서 알아봤으며 Open 이벤트 프로시저를 실제 예제로 알아봤습니다. 이번에는 나머지 이벤트 프로시저들을 실제 예제로 확인해보겠습니다.

 

1. Activate

 

 

 

 

Open 이벤트 프로시저의 경우는 통합 문서가 열릴 때 실행되는 프로시저라면 Activate 이벤트 프로시저는 통합 문서가 활성화될 때 실행되는 프로시저입니다.

 

Visual Basic Editor를 실행하고 '현재_통합_문서'를 더블 클릭한 후 개체 선택 사각 박스에서 'Workbook'을 선택합니다. 그리고 이벤트 프로시저 선택 사각 박스에서는 'Activate'를 선택합니다. 코드창에 다음과 같이 코드를 작성합니다. 개체 및 이벤트 프로시저 선택 사각 박스에 대해서는 이전 글에 설명되어 있으니 참조하기 바랍니다.

더보기

Private Sub Workbook_Activate()
    MsgBox "통합 문서가 활성화 되었습니다.", , "WorkBook_Activate"
End Sub

 

Activate_이벤트_프로시저_코드_실행_결과
[그림 1] Activate_이벤트_프로시저_코드_실행_결과

코드를 작성하고 실행을 하면 [그림 1]과 같은 창이 출력됩니다.

 

2. Deactivate

Deactivate 이벤트 프로시저는 통합 문서가 비활성화될 때 실행됩니다.

이번에는 이벤트 프로시저 선택 사각 박스에서 'Deactivate'를 선택하고 다음과 같은 코드를 작성합니다.

더보기

Private Sub Workbook_Deactivate()
    MsgBox "통합 문서가 비활성화 되었습니다.", , "WorkBook_Deactivate"
End Sub

 

Deactivate_이벤트_프로시저_코드_실행_결과
[그림 2] Deactivate_이벤트_프로시저_코드_실행_결과

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

 

3. SheetActivate

SheetActivate 이벤트 프로시저는 시트가 활성화될 때 발생하며 통합 문서에 있는 모든 시트가 대상입니다.

이번에는 이벤트 프로시저 선택 사각 박스에 'SheetActivate'를 찾아 선택하고 다음 코드를 코드창에 작성합니다.

더보기

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
        MsgBox Sh.Name & " 시트가 활성화되었습니다. ", , "Workbook_SheetActivate"
End Sub

 

SheetActivate_이벤트_프로시저_코드_실행_결과
[그림 3] SheetActivate_코드_실행_결과

코드를 작성하고 활성화된 시트에서 다른 시트를 클릭하면 [그림 3]과 같은 창이 출력됩니다.

 

4. SheetDeactivate

SheetDeactivate는 시트가 비활성화될 때 발생하며 통합 문서에 있는 모든 시트를 대상으로 합니다.

이벤트 프로시저 선택 사각 박스에서 'SheetDeactivate'를 선택하고 아래 코드를 코드창에 작성합니다.

더보기

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
    MsgBox Sh.Name & " 시트가 비활성화되었습니다. ", , "Workbook_SheetDeactivate"
End Sub

 

SheetDeactivate_이벤트_프로시저_코드_실행_결과
[그림 4] SheetDeactivate_코드_실행_결과

코드를 작성하고 활성화된 시트에서 다른 시트를 클릭하면 [그림 4]과 같은 창이 출력됩니다.

 

 

 

5. NewSheet

NewSheet는 새로 시트를 삽입할 경우 발생합니다.

이벤트 프로시저 선택 사각 박스에서 'NewSheet'를 선택하고 아래 코드를 코드창에 작성합니다.

더보기

Private Sub Workbook_NewSheet(ByVal Sh As Object)
    MsgBox Sh.Name & " 시트가 추가되었습니다. ", , "Workbook_NewSheet"
End Sub

 

NewSheet_이벤트_프로시저_코드_실행_결과
[그림 5] NewSheet_코드_실행_결과

코드를 작성하고 새로운 시트를 추가하면 [그림 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

 

SheetBeforeDoubleClick_이벤트_프로시저_코드_실행_결과
[그림 6] SheetBeforeDoubleClick_코드_실행_결과

코드를 작성하고 워크시트에서 마우스 더블클릭을 하면 [그림 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

 

SheetBeforeRightClick_이벤트_프로시저_코드_실행_결과
[그림 7] SheetBeforeRightClick_코드_실행_결과

코드를 작성하고 워크시트에서 마우스 오른쪽 버튼을 클릭하면 [그림 7]과 같은 창이 출력됩니다.

반응형