VBA 코드에 대한 트리거(스위치)가 될 수 있는 통합 문서 이벤트(예: 열기, 닫기 등)가 있을 수 있습니다.
통합 문서가 열릴 때 지침을 따르려면 ThisWorkbook으로 이동하여 Workbook을 선택합니다.
Workbook_Open 이벤트는 기본적으로 추가되며 통합 문서가 열릴 때 실행됩니다.
Private Sub Workbook_Open() End Sub
예를 들어, 다음 명령을 추가하면 통합 문서가 열릴 때 대화 상자가 표시됩니다.
Private Sub Workbook_Open() MsgBox "Welcome" End Sub
통합 문서를 닫기 전에 지침을 실행하려면 BeforeClose를 선택합니다.
Private Sub Workbook_BeforeClose(Cancel As Boolean) End Sub
"Cancel" 변수를 True로 설정하면 통합 문서 닫기를 취소할 수 있습니다.
다음은 통합 문서를 닫을 때 사용자에게 확인을 요청하는 예입니다.
Private Sub Workbook_BeforeClose(Cancel As Boolean) '사용자가 NO로 응답하면 Cancel 변수는 TRUE 값을 갖게 됩니다(통합 문서 닫기가 취소됨). If MsgBox("Do you really want to close this workbook ?", 36, "I confirm") = vbNo Then Cancel = True End If End Sub
이 이벤트는 통합 문서가 저장되기 직전에 발생합니다.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) End Sub
"Cancel" 변수를 True로 설정하면 파일 저장을 취소할 수 있습니다.
이 이벤트는 통합 문서가 인쇄되기 전에 발생합니다.
Private Sub Workbook_BeforePrint(Cancel As Boolean) End Sub
"Cancel" 변수를 True로 설정하면 파일 인쇄를 취소할 수 있습니다.
이 이벤트는 통합 문서를 저장한 직후에 발생합니다.
Private Sub Workbook_AfterSave(ByVal Success As Boolean) End Sub
이 이벤트는 통합 문서의 워크시트 간에 전환할 때마다 발생합니다.
Private Sub Workbook_SheetActivate(ByVal Sh As Object) End Sub
이 예에서는 활성 시트의 이름이 대화 상자에 표시됩니다.
Private Sub Workbook_SheetActivate(ByVal Sh As Object) MsgBox "Name of Sheet : " & Sh.Name End Sub
이 이벤트는 워크시트 셀을 두 번 클릭할 때 발생합니다.
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) End Sub
예를 들어 이 이벤트를 사용하여 선택한 시트에 따라 셀 채우기 색상을 추가할 수 있습니다.
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) If Sh.Name = "Sheet1" Then Target.Interior.Color = RGB(255, 108, 0) '주황색 Else Target.Interior.Color = RGB(136, 255, 0) '녹색 End If End Sub
이 이벤트는 마우스 오른쪽 버튼을 클릭하기 전에 발생합니다.
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) End Sub
이 이벤트는 워크시트의 내용이 변경될 때마다 발생합니다.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) End Sub
이 이벤트는 워크시트의 데이터가 계산되거나 다시 계산될 때마다 발생합니다.
Private Sub Workbook_SheetCalculate(ByVal Sh As Object) End Sub
이 이벤트는 스프레드시트에서 선택한 셀 범위의 내용이 변경될 때마다 발생합니다.
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) End Sub
이 예에서는 A1 셀이 비어 있으면 채우기 색상이 변경됩니다.
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) If Range("A1") = "" Then Target.Interior.Color = RGB(124, 255, 255) '파란색 End If End Sub
이 이벤트는 통합 문서에 새 시트가 추가될 때마다 발생합니다.
Private Sub Workbook_NewSheet(ByVal Sh As Object) End Sub
이 이벤트는 링크(하이퍼텍스트)를 클릭할 때 발생합니다.
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink) End Sub