다음을 통해 공유


Visual Studio Tools for Office 프로젝트 이벤트

업데이트: 2007년 11월

각 Visual Studio Tools for Office 프로젝트 템플릿에서는 몇 가지 이벤트 처리기가 자동으로 생성됩니다. 문서 수준 사용자 지정의 이벤트 처리기는 응용 프로그램 수준 추가 기능의 이벤트 처리기와 약간 다릅니다.

사용자 지정 및 추가 기능에 대한 자세한 내용은 Office 솔루션 개발 개요를 참조하십시오.

문서 수준 사용자 지정

Visual Studio Tools for Office에서는 문서 수준 사용자 지정의 새 문서나 워크시트 또는 기존 문서나 워크시트에 숨겨진 코드를 생성합니다. 이 코드에서는 Startup 및 Shutdown이라는 두 개의 이벤트를 발생시킵니다.

Startup 이벤트

Startup 이벤트는 문서가 실행 중이고 어셈블리의 모든 초기화 코드가 실행된 후에 각 호스트 항목(문서 또는 워크시트)에 대해 발생하며, 코드가 실행되고 있는 클래스의 생성자에서 실행될 마지막 항목입니다. 호스트 항목에 대한 자세한 내용은 호스트 항목 및 호스트 컨트롤 개요를 참조하십시오.

문서 수준 프로젝트를 만들면 Visual Studio Tools for Office에서는 생성된 코드 파일에 Startup 이벤트에 대한 이벤트 처리기를 만듭니다.

  • Microsoft Office Word 프로젝트의 경우 이벤트 처리기의 이름은 ThisDocument_Startup입니다.

  • Microsoft Office Excel 프로젝트의 경우 이벤트 처리기의 이름은 다음과 같습니다.

    • Sheet1_Startup

    • Sheet2_Startup

    • Sheet3_Startup

    • ThisWorkbook_Startup

Shutdown 이벤트

Shutdown 이벤트는 코드가 로드되는 응용 프로그램 도메인이 언로드되려고 할 때 각 호스트 항목(문서 또는 워크시트)에 대해 발생하며, 언로드되면서 클래스에서 호출될 마지막 항목입니다.

문서 수준 프로젝트를 만들면 Visual Studio Tools for Office에서는 생성된 코드 파일에 Shutdown 이벤트에 대한 이벤트 처리기를 만듭니다.

  • Microsoft Office Word 프로젝트의 경우 이벤트 처리기의 이름은 ThisDocument_Shutdown입니다.

  • Microsoft Office Excel 프로젝트의 경우 이벤트 처리기의 이름은 다음과 같습니다.

    • Sheet1_Shutdown

    • Sheet2_Shutdown

    • Sheet3_Shutdown

    • ThisWorkbook_Shutdown

참고:

문서의 Shutdown 이벤트 처리기에서 컨트롤을 프로그래밍 방식으로 제거하지 마십시오. Shutdown 이벤트가 발생할 경우 문서의 UI 요소를 더 이상 사용할 수 없습니다. 응용 프로그램을 닫기 전에 컨트롤을 제거하려면 사용자 코드를 BeforeClose 또는 BeforeSave 등의 다른 이벤트 처리기에 추가합니다.

이벤트 처리기 메서드 선언

모든 이벤트 처리기 메서드 선언에 동일하게 전달되는 인수는 sender와 e입니다. Excel의 sender 인수는 Sheet1 또는 Sheet2 같은 시트를 나타내고 Word의 sender 인수는 문서를 나타냅니다. e 인수는 이벤트의 표준 인수(이 경우에는 사용되지 않음)를 나타냅니다.

다음 코드 예제에서는 Word용 문서 수준 프로젝트의 기본 이벤트 처리기를 보여 줍니다.

Private Sub ThisDocument_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _
    Handles Me.Startup

End Sub

Private Sub ThisDocument_Shutdown(ByVal sender As Object, ByVal e As System.EventArgs) _
    Handles Me.Shutdown

End Sub
private void ThisDocument_Startup(object sender, System.EventArgs e)
{
}

private void ThisDocument_Shutdown(object sender, System.EventArgs e)
{
}

다음 코드 예제에서는 Excel용 문서 수준 프로젝트의 기본 이벤트 처리기를 보여 줍니다.

참고:

다음 코드 예제에서는 Sheet1 클래스의 이벤트 처리기를 보여 줍니다. 다른 호스트 항목 클래스의 이벤트 처리기 이름은 클래스 이름에 대응합니다. 예를 들어 Sheet2 클래스에서 Startup 이벤트 처리기의 이름은 Sheet2_Startup이고, ThisWorkbook 클래스에서 Startup 이벤트 처리기의 이름은 ThisWorkbook_Startup입니다.

Private Sub Sheet1_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _
    Handles Me.Startup

End Sub

Private Sub Sheet1_Shutdown(ByVal sender As Object, ByVal e As System.EventArgs) _
    Handles Me.Shutdown

End Sub
private void Sheet1_Startup(object sender, System.EventArgs e)
{
}

private void Sheet1_Shutdown(object sender, System.EventArgs e)
{
}

응용 프로그램 수준 추가 기능

Visual Studio Tools for Office에서는 응용 프로그램 수준 추가 기능의 생성된 코드를 제공합니다. 이 코드에서는 StartupShutdown이라는 두 개의 이벤트를 발생시킵니다.

Startup 이벤트

Startup 이벤트는 추가 기능이 로드되고 어셈블리의 모든 초기화 코드가 실행된 후에 발생합니다. 이 이벤트는 생성된 코드 파일의 ThisAddIn_Startup 메서드에서 처리합니다.

ThisAddIn_Startup 이벤트 처리기의 코드는 추가 기능에서 RequestComAddInAutomationService 메서드를 재정의하지 않는 한 실행될 첫 번째 사용자 코드입니다. 이 경우 ThisAddIn_Startup 이벤트 처리기는 RequestComAddInAutomationService 다음에 호출됩니다. 2007 Microsoft Office system용 추가 기능에서 ThisAddIn_Startup 이벤트 처리기의 코드는 추가 기능에서 RequestService 메서드를 재정의한 경우 해당 메서드 다음에 호출될 수도 있습니다.

추가 기능의 시작 시퀀스에 대한 자세한 내용은 응용 프로그램 수준 추가 기능 아키텍처를 참조하십시오.

Shutdown 이벤트

Shutdown 이벤트는 코드가 로드된 응용 프로그램 도메인이 언로드되기 직전에 발생합니다. 이 이벤트는 생성된 코드 파일의 ThisAddIn_Shutdown 메서드에서 처리됩니다. 이 이벤트 처리기는 추가 기능이 언로드될 때 실행할 마지막 사용자 코드입니다.

참고 항목

작업

방법: Visual Studio Tools for Office 프로젝트 만들기

개념

Office 솔루션 개발

문서 수준 사용자 지정 프로그래밍

응용 프로그램 수준 추가 기능 프로그래밍

Visual Studio Tools for Office 프로젝트 템플릿 개요