엑셀 작업을 할 때 통합 문서를 열거나 셀을 선택하거나 셀의 내용을 수정하는 등의 모든 작업이 이벤트에 해당합니다. 이런 이벤트가 발생하면 엑셀은 그와 관련되어 있는 이벤트 프로시저를 실행하게 됩니다. 즉 이벤트 프로시저는 이벤트가 발생했을 때 수행되어야 할 내용을 적어놓은 것입니다.
이벤트 프로시저의 장점은 이벤트가 발생하면 자동으로 실행되기 때문에 알맞은 이벤트 프로시저를 작성하므로 보다 빠르고 편리하게 엑셀 작업을 할 수 있습니다.
1. 이벤트 프로시저 삽입해보기
workbook과 관련된 이벤트 프로시저에 대해 알아보겠습니다.
먼저 엑셀에서 Visual Basic Editor를 열어 주세요. 여는 방법은 이전 글을 참조해 주시기 바랍니다.
이전에 VBA를 이용하여 통합문서를 다루는 것을 글로 알아봤었습니다. 이제 실제 실행해 보겠습니다.
[그림 1]은 Visual Basic Editor 창을 연 모습입니다. 이제 좌측에 보이는 '현재_통합_문서'를 마우스로 더블클릭합니다.
[그림 2]와 같은 창이 화면에 출력됩니다. 여기에 코드를 작성하게 됩니다.
빨간색 사각형으로 표시한 부분은 개체를 선택할 수 있는 사각 박스입니다. 이 박스를 클릭하면 현재 통합 문서에 있는 개체가 표시됩니다. 마우스로 사각 박스를 클릭하여 Workbook을 선택합니다.
그러면 코드창에 글이 생성되고 '(선언)'이라고 쓰여있는 사각 박스를 클릭해 보시면 여러 이벤트 프로시저들이 뜹니다. '(선언)'이라고 쓰여있는 사각박스는 이벤트 프로시저를 선택할 수 있는 사각 박스입니다.
우선 통합 문서를 열 때 발생하는 이벤트 프로시저는 Workbook 개체를 선택할 때 기본적으로 작성되었습니다. 이벤트 프로시저 사각 박스에서 원하는 프로시저를 선택하시면 됩니다.
이벤트 프로시저 사각 박스를 보시면 여러 가지 이벤트 프로시저가 보이는 데 이 중에서 몇 가지 이벤트 프로시저에 대한 설명은 아래 표를 참조하세요.
이벤트 프로시저 | 설명 |
Activate | 통합 문서가 활성화될 때 발생 |
AddinInstall | 통합 문서를 추가할 때 발생 |
AddinUninstall | 통합 문서를 제거할 때 발생 |
BeforeClose | 통합 문서를 닫기 전에 발생하며 통합 문서 내용이 변경된 경우 저장 여부를 묻기 전에 발생 |
BeforePrint | 통합 문서를 인쇄하기 전에 발생 |
BeforeSave | 통합 문서를 저장하기 전에 발생 |
Deactivate | 통합 문서가 비활성화될 때 발생 |
NewSheet | 새 시트를 삽입할 때 발생 |
Open | 통합 문서를 열 때 발생 |
SheetActivate | 시트가 활성화 될 때 발생 |
SheetBeforeDoubleClick | 뭐크시트에서 더블 클릭할 때 발생하지만 차트시트에서는 발생하지 않음 |
SheetBeforeRightClick | 워크시트에서 마우스 우측 버튼을 클릭할 때 발생하지만 차트시트에서는 발생하지 않음 |
SheetCalculate | 시트가 재계산될 때 발생 |
SheetChange | 워크시트에서 셀의 내용을 변경할 때 발생하지만 차트시트에서는 발생하지 않음 |
SheetDeactivate | 시트가 비활성화될 때 발생 |
SheetFollowHyperlink | 워크시트에서 하이퍼링크를 클릭할 때 발생 |
SheetPivotTableUpdate | 피벗 테이블 보고서를 업데이트한 다음 발생 |
SheetSelectionChange | 워크시트에서 셀이나 셀 범위를 선택 혹은 변경할 때 발생하지만 차트시트에서는 발생하지 않음 |
WindowActivate | 통합 문서의 창이 활성화될 때 발생 |
WindowDeactivate | 통합 문서의 창이 비활성화될 때 발생 |
WindowResize | 통합 문서의 창 크기를 조정할 때 발생 |
이벤트 프로시저의 이름을 보시면 영어로 이벤트에 대한 설명을 요약한 단어로 이루어져 있어서 이름만 보면 어느 정도 유추가 가능하게 되어 있습니다.
Open 이벤트 프로시저에 다음과 같이 코딩합니다.
Private Sub Workbook_Open()
MsgBox "안녕하세요", , "Workbook_Open"
End Sub
그리고 실행해 보시면 [그림 3]과 같은 대화 상자가 출력됩니다.
'엑셀 > VBA' 카테고리의 다른 글
VBA 이벤트와 이벤트 프로시저 삽입하고 실행해보기 III (0) | 2021.07.13 |
---|---|
VBA 이벤트와 이벤트 프로시저 삽입하고 실행해보기 II (0) | 2021.07.09 |
VBA로 간단한 입력과 출력 실행해보기 (0) | 2021.07.07 |
VBA를 작성하여 엑셀 개체 다루기 (0) | 2021.07.05 |
VBA 연산자와 제어문에 대해 알아보기 II (0) | 2021.07.05 |