rand(life)

[vba] workbook 이벤트 등록법 본문

컴퓨터/엑셀

[vba] workbook 이벤트 등록법

flogsta 2017. 7. 18. 13:48


엑셀파일이 열릴 때 자동으로 특정 매크로를 실행하고 싶다면, workbook_Open 이벤트를 사용한다. 

그러려면 일반적으로 매크로를 작성할때처럼 VB편집기 - 삽입 - 모듈로 해서는 안된다.


일단 Alt-F11 해서 VB편집기를 열고, 좌측에 있는 프로젝트탐색기(Ctrl-R)에서 '현재통합문서'를 더블클릭한다


그러면 아래와 같은 창이 뜨는데, 거기서 역삼각형 두개를 각각 클릭하여, Workbook과 Open을 선택하면 된다


이제 그림에 있는 화살표가 가리키는 부분에 작업할 내용의 매크로를 넣으면 된다.

workbook 이벤트는 다음과 같은 것들이 있다. (출처: msdn.microsoft.com)

 

ActivateEvent 통합 문서를 활성화할 때 발생 합니다.

AddinInstall 통합 문서는 추가 기능으로 설치 될 때 발생 합니다.

AddinUninstall 추가 기능으로 통합 문서를 제거 하면 발생 합니다.

AfterSave 통합 문서가 저장 한 후에 발생 합니다.

AfterXmlExport Microsoft Office Excel 저장 하거나 XML 데이터 파일에 통합 문서에서 데이터를 내보낸 후 발생 합니다.

AfterXmlImport 기존 XML 데이터 연결을 새로 고친 후 또는 통합 문서에 새 XML 데이터를 가져온 후에 발생 합니다.

BeforeClose 통합 문서를 닫기 전에 발생 합니다. 통합 문서에서 변경 된 경우이 이벤트는 사용자가 변경 내용을 저장 하 라는 메시지가 표시 되기 전에 발생 합니다.

BeforePrint 발생 통합 문서 (또는 통합 문서의 내용)를 인쇄 하기 전에 합니다.

BeforeSave 통합 문서를 저장 하기 전에 발생 합니다.

BeforeXmlExport Microsoft Office Excel 저장 하거나 XML 데이터 파일에 통합 문서에서 데이터를 내보내기 전에 발생 합니다.

BeforeXmlImport XML 데이터 연결을 새로 고칠 또는 새 XML 하기 전에 데이터를 통합 문서로 가져올 기존 전에 발생 합니다.

BindingContextChanged API는 제품 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

Deactivate 통합 문서가 비활성화 될 때 발생 합니다.

Disposed (IComponent에서 상속됨)

New 새 통합 문서를 만들 때 발생 합니다.

NewChart 통합 문서에서 새 차트를 만들 때 발생 합니다.

NewSheet 통합 문서에 새 시트를 만들 때 발생 합니다.

Open 통합 문서가 열릴 때 발생 합니다.

PivotTableCloseConnection 피벗 테이블 보고서의 데이터 원본에 대 한 연결을 닫은 후에 발생 합니다.

PivotTableOpenConnection 피벗 테이블 보고서의 데이터 원본에 대 한 연결을 연 후에 발생 합니다.

RowsetComplete 사용자가 레코드 집합을 탐색 하거나 OLAP 피벗 테이블에서 행 집합 작업을 호출 하는 경우 발생 합니다.

SheetActivate 시트를 활성화할 때 발생 합니다.

SheetBeforeDoubleClick 기본 동작을 두 번 클릭 하기 전에 모든 워크시트, 두 번 클릭할 때 발생 합니다.

SheetBeforeRightClick 기본 작업을 마우스 오른쪽 단추로 클릭 하기 전에 모든 워크시트를 마우스 오른쪽 때 발생 합니다.

SheetCalculate 워크시트가 다시 계산 또는 변경 된 데이터를 차트에 그려진 후 발생 합니다.

SheetChange 워크시트의 셀에는 사용자 또는 외부 링크에 의해 변경 될 때 발생 합니다.

SheetDeactivate 시트를 비활성화할 때 발생 합니다.

SheetFollowHyperlink 통합 문서에서 하이퍼링크를 클릭할 때 발생 합니다.

SheetPivotTableAfterValueChange 셀 또는 셀 피벗 테이블 내에서 범위를 편집 또는 (수식이 들어 있는 셀)에 대해 다시 계산 후 발생 합니다.

SheetPivotTableBeforeAllocateChanges 피벗 테이블에 변경 내용이 적용 되기 전에 발생 합니다.

SheetPivotTableBeforeCommitChanges 피벗 테이블에 대 한 OLAP 데이터 원본에 대해 변경 내용이 커밋되기 전에 발생...

SheetPivotTableBeforeDiscardChanges 피벗 테이블에 변경 내용이 삭제 됩니다 전에 발생 합니다.

SheetPivotTableChangeSync 피벗 테이블에 변경 된 후 발생합니다.

SheetPivotTableUpdate 피벗 테이블 보고서의 시트를 업데이트 한 후에 발생 합니다.

SheetSelectionChange 워크시트에서 선택 영역을 변경할 때 발생 합니다. 선택 영역이 있는 경우 차트 시트에는 발생 하지 않습니다.

Shutdown 통합 문서 호스트 항목 종료 될 때 발생 합니다.

Startup 통합 문서에서 실행 되는 어셈블리의 모든 초기화 코드가 실행 된 후에 발생 합니다.

SyncEvent 문서 작업 영역에 포함 된 워크시트의 로컬 복사본은 서버에 있는 복사본과 동기화 될 때 발생 합니다.

WindowActivate 모든 통합 문서 창을 활성화할 때 발생 합니다.

WindowDeactivate 통합 문서 창을 비활성화 될 때 발생 합니다.

WindowResize 통합 문서 창의 크기를 조정 하면 발생 합니다.

 

worksheet 이벤트는 해당 시트명을 마우스 오른쪽 클릭하고 '코드보기'를 선택하면 된다

Worksheet이벤트에는 다음과 같은 것들이 있다. (출처 동일)


ActivateEvent 워크시트 활성화 될 때 발생 합니다.

BeforeDoubleClick 기본 동작 전에 워크시트를 두 번 클릭할 때 발생 합니다.

BeforeRightClick 워크시트를 마우스 오른쪽의 기본 동작을 마우스 오른쪽 단추로 클릭 하기 전에 발생 합니다.

BindingContextChanged API는 제품 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

Calculate 워크시트를 새로 고치기 후 발생 합니다.

Change 변경 될 때 발생 된 Worksheet 셀입니다.

Deactivate 워크시트 포커스를 잃을 때 발생 합니다.

Disposed (IComponent에서 상속됨)

FollowHyperlink 워크시트에 하이퍼링크를 클릭할 때 발생 합니다.

PivotTableAfterValueChange 셀 또는 셀 피벗 테이블 내에서 범위를 편집 또는 (수식이 들어 있는 셀)에 대해 다시 계산 후 발생 합니다.

PivotTableBeforeAllocateChanges 피벗 테이블에 변경 내용이 적용 되기 전에 발생 합니다.

PivotTableBeforeCommitChanges 피벗 테이블에 대 한 OLAP 데이터 원본에 대해 변경 내용이 커밋되기 전에 발생 합니다.

PivotTableBeforeDiscardChanges 피벗 테이블에 변경 내용이 삭제 됩니다 전에 발생 합니다.

PivotTableChangeSync 피벗 테이블에 변경 된 후 발생합니다.

PivotTableUpdate 워크시트에 피벗 테이블 보고서를 업데이트 한 후에 발생 합니다.

SelectionChange 워크시트에서 선택 영역을 변경할 때 발생 합니다.

Shutdown 워크시트 호스트 항목 종료 될 때 발생 합니다.

Startup 워크시트에서 실행 되는 어셈블리의 모든 초기화 코드가 실행 된 후에 발생 합니다.