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

응용 프로그램 수준 추가 기능을 만들어 Microsoft Office 응용 프로그램을 확장할 때는 프로젝트의 ThisAddIn 클래스에 대해 직접 코드를 작성합니다.이 클래스를 사용하면 Microsoft Office 호스트 응용 프로그램의 개체 모델에 액세스하고, 응용 프로그램의 UI(사용자 인터페이스)를 사용자 지정하고, 추가 기능의 개체를 다른 Office 솔루션에 노출하는 등의 작업을 수행할 수 있습니다.

적용 대상: 이 항목의 정보는 Microsoft Office 2013 및 Microsoft Office 2010의 응용 프로그램 수준 프로젝트에 적용됩니다. 자세한 내용은 Office 응용 프로그램 및 프로젝트 형식에 따라 사용 가능한 기능을 참조하십시오.

추가 기능 프로젝트에는 Visual Studio의 다른 프로젝트 형식과 차이가 있는 코드 작성 측면이 몇 가지 있습니다.이러한 차이점은 대부분 Office 개체 모델이 관리 코드에 노출되는 방식 때문에 발생합니다.자세한 내용은 Office 솔루션에서 코드 작성을 참조하십시오.

응용 프로그램 수준 추가 기능과 Visual Studio의 Office 개발 도구를 사용하여 만들 수 있는 그 밖의 솔루션 형식에 대한 일반적인 내용은 Office 솔루션 개발 개요를 참조하십시오.

ThisAddIn 클래스 사용

ThisAddIn 클래스에 추가 기능 코드를 작성할 수 있습니다.Visual Studio에서는 추가 기능 프로젝트의 ThisAddIn.vb(Visual Basic의 경우) 또는 ThisAddIn.cs(C#의 경우) 코드 파일에 이 클래스를 자동으로 생성합니다.Microsoft Office 응용 프로그램에서 추가 기능을 로드할 때 Microsoft Visual Studio Tools for Office Runtime에서는 자동으로 이 클래스를 인스턴스화합니다.

ThisAddIn 클래스에는 두 개의 기본 이벤트 처리기가 있습니다.추가 기능이 로드될 때 코드를 실행하려면 ThisAddIn_Startup 이벤트 처리기에 코드를 추가합니다.추가 기능이 언로드되기 직전에 코드를 실행하려면 ThisAddIn_Shutdown 이벤트 처리기에 코드를 추가합니다.이러한 이벤트 처리기에 대한 자세한 내용은 Office 프로젝트의 이벤트를 참조하십시오.

[!참고]

기본적으로 outlook에서은 ThisAddIn_Shutdown 이벤트 처리기 추가 기능을 언로드할 때 항상 호출 되지 않습니다.자세한 내용은 Office 프로젝트의 이벤트을 참조하십시오.

Bb157876.collapse_all(ko-kr,VS.110).gif호스트 응용 프로그램 개체 모델에 액세스

호스트 응용 프로그램의 개체 모델에 액세스하려면 ThisAddIn 클래스의 Application 필드를 사용합니다.이 필드에서는 호스트 응용 프로그램의 현재 인스턴스를 나타내는 개체를 반환합니다.다음 표에서는 각 추가 기능 프로젝트의 Application 필드에 대한 반환 값 형식을 보여 줍니다.

호스트 응용 프로그램

반환 값 형식

Microsoft Office Excel

Microsoft.Office.Interop.Excel.Application

Microsoft Office InfoPath

Microsoft.Office.Interop.InfoPath.Application

Microsoft Office Outlook

Microsoft.Office.Interop.Outlook.Application

Microsoft Office PowerPoint

Microsoft.Office.Interop.PowerPoint.Application

Microsoft Office Project

Microsoft.Office.Interop.MSProject.Application

Microsoft Office Visio

Microsoft.Office.Interop.Visio.Application

Microsoft Office Word

Microsoft.Office.Interop.Word.Application

다음 코드 예제에서는 Application 필드를 사용하여 Microsoft Office Excel용 추가 기능에 새 통합 문서를 만드는 방법을 보여 줍니다.이 예제는 ThisAddIn 클래스에서 실행할 수 있습니다.

Dim newWorkbook As Excel.Workbook = Me.Application.Workbooks.Add()
Excel.Workbook newWorkbook = this.Application.Workbooks.Add(System.Type.Missing);

ThisAddIn 클래스 외부에서 동일한 작업을 수행하려면 Globals 개체를 사용하여 ThisAddIn 클래스에 액세스합니다.Globals 개체에 대한 자세한 내용은 Office 프로젝트의 개체에 전역 액세스를 참조하십시오.

Dim newWorkbook As Excel.Workbook = Globals.ThisAddIn.Application.Workbooks.Add()
Excel.Workbook newWorkbook = Globals.ThisAddIn.Application.Workbooks.Add(System.Type.Missing);

특정 Microsoft Office 응용 프로그램의 개체 모델에 대한 자세한 내용은 다음 항목을 참조하십시오.

Bb157876.collapse_all(ko-kr,VS.110).gifOffice 응용 프로그램이 시작 될 때 문서에 액세스

모든 Office 2010 자동으로 열려 있는 응용 프로그램 문서 및 없음의 시작 때의 Office 2013 응용 프로그램을 시작 하면 문서를 엽니다.따라서, 코드를 추가 하지 마십시오는 ThisAdd-In_Startup 열려 있는 문서에서 코드에 필요한 경우 이벤트 처리기입니다.대신 사용자가 만들거나 문서를 열 때 Office 응용 프로그램을 발생 시킨 이벤트에이 코드를 추가 합니다.이렇게 하면 코드 작업을 수행 하기 전에 문서를 열려 있음을 보장할 수 있습니다.

만 사용자가 문서를 만들거나 기존 문서를 열 때 Word에서 문서에에서 다음 코드 예제에서는 작동 합니다.

Private Sub ThisAddIn_Startup() Handles Me.Startup

    AddHandler Application.NewDocument, AddressOf WorkWithDocument

End Sub

Private Sub WorkWithDocument(ByVal Doc As Microsoft.Office.Interop.Word.Document) _
    Handles Application.DocumentOpen

    Dim rng As Word.Range = Doc.Range(Start:=0, End:=0)
    rng.Text = " New Text "
    rng.Select()

End Sub

Bb157876.collapse_all(ko-kr,VS.110).gif다른 작업에 사용할 ThisAddIn 멤버

다음 표에서는 일반적인 다른 작업을 설명하고 작업을 수행하는 데 사용할 수 있는 ThisAddIn 클래스의 멤버를 보여 줍니다.

Task

사용할 멤버

추가 기능이 로드될 때 추가 기능을 초기화하는 코드를 실행합니다.

ThisAddIn_Startup 메서드에 코드를 추가합니다.이 메서드는 Startup 이벤트의 기본 이벤트 처리기입니다.자세한 내용은 Office 프로젝트의 이벤트을 참조하십시오.

추가 기능이 언로드되기 전에 추가 기능에 사용된 리소스를 정리하는 코드를 실행합니다.

ThisAddIn_Shutdown 메서드에 코드를 추가합니다.이 메서드는 Shutdown 이벤트의 기본 이벤트 처리기입니다.자세한 내용은 Office 프로젝트의 이벤트을 참조하십시오.

참고참고
기본적으로 outlook에서은 ThisAddIn_Startup 이벤트 처리기 추가 기능을 언로드할 때 항상 호출 되지 않습니다.자세한 내용은 Office 프로젝트의 이벤트을 참조하십시오.

사용자 지정 작업 창을 표시합니다.

CustomTaskPanes 필드를 사용합니다.자세한 내용은 사용자 지정 작업 창을 참조하십시오.

다른 Microsoft Office 솔루션에 추가 기능의 개체를 노출합니다.

RequestComAddInAutomationService 메서드를 재정의합니다.자세한 내용은 다른 Office 솔루션에서 응용 프로그램 수준 추가 기능의 코드 호출을 참조하십시오.

확장성 인터페이스를 구현하여 Microsoft Office system의 기능을 사용자 지정합니다.

인터페이스를 구현하는 클래스의 인스턴스를 반환하려면 RequestService 메서드를 재정의합니다.자세한 내용은 확장성 인터페이스를 사용하여 UI 기능 사용자 지정을 참조하십시오.

참고참고
리본 메뉴 UI를 사용자 지정 하려면 재정의할 수도 있습니다의 CreateRibbonExtensibilityObject 메서드가 있습니다.

Bb157876.collapse_all(ko-kr,VS.110).gifThisAddIn 클래스의 디자인 이해

대상으로 하는 프로젝트의 .NET Framework 4, Microsoft.Office.Tools.AddIn 인터페이스입니다.ThisAddIn 클래스는 Microsoft.Office.Tools.AddInBase 클래스에서 파생됩니다.이 기본 클래스는 멤버에 대한 모든 호출을 Microsoft Visual Studio Tools for Office Runtime에 있는 Microsoft.Office.Tools.AddIn 인터페이스의 내부 구현으로 리디렉션합니다.

Outlook용 추가 기능 프로젝트에서 ThisAddIn 클래스는 .NET Framework 3.5를 대상으로 하는 프로젝트의 Microsoft.Office.Tools.Outlook.OutlookAddIn 클래스와 .NET Framework 4를 대상으로 하는 프로젝트의 Microsoft.Office.Tools.Outlook.OutlookAddInBase에서 파생됩니다.이러한 기본 클래스는 양식 영역을 지원하기 위해 몇 가지 기능을 제공합니다.양식 영역에 대한 자세한 내용은 Outlook 양식 영역 만들기를 참조하십시오.

Microsoft Office 응용 프로그램의 사용자 인터페이스 사용자 지정

응용 프로그램 수준 추가 기능을 사용하여 Microsoft Office 응용 프로그램의 UI(사용자 인터페이스)를 프로그래밍 방식으로 사용자 지정할 수 있습니다.예를 들어 리본 메뉴를 사용자 지정 사용자 지정 작업창을 표시 하거나 사용자 지정 양식 영역을 Outlook에서 만들 있습니다.자세한 내용은 Office UI 사용자 지정을 참조하십시오.

Visual Studio 디자이너와 사용자 지정 작업 창, 리본 사용자 지정 및 Outlook 양식 영역을 만드는 데 사용할 수 있는 클래스를 제공 합니다.이러한 디자이너 및 클래스는 해당 기능에 대한 사용자 지정 과정을 단순화하는 데 유용합니다.자세한 내용은 사용자 지정 작업 창, 리본 디자이너Outlook 양식 영역 만들기를 참조하십시오.

클래스 및 디자이너에서 지원하지 않는 방식으로 이러한 기능 중 하나를 사용자 지정하려는 경우 추가 기능의 확장성 인터페이스를 구현하여 해당 기능을 사용자 지정할 수도 있습니다.자세한 내용은 확장성 인터페이스를 사용하여 UI 기능 사용자 지정을 참조하십시오.

또한 UI의 Word 문서 및 Excel 통합 문서 및 통합 문서의 동작을 확장 하는 호스트 항목을 생성 하 여 수정할 수 있습니다.문서 및 워크시트에 관리 되는 컨트롤을 추가할 수 있습니다.자세한 내용은 런타임에 응용 프로그램 수준 추가 기능의 Word 문서 및 Excel 통합 문서 확장을 참조하십시오.

다른 솔루션에서 응용 프로그램 수준 추가 기능의 코드 호출

추가 기능의 개체를 다른 Office 솔루션을 비롯한 다른 솔루션에 노출할 수 있습니다.이렇게 하면 추가 기능에서 제공하는 서비스를 다른 Office 솔루션에서 사용할 수 있게 하려는 경우에 유용합니다.재무 데이터를 웹 서비스에서 계산을 수행 하는 Microsoft Office Excel 용 추가 기능에 있는 경우 예를 들어 다른 솔루션 이러한 계산은 런타임에 Excel에서 추가 기능으로 호출 하 여 수행할 수 있습니다.

자세한 내용은 다른 Office 솔루션에서 응용 프로그램 수준 추가 기능의 코드 호출을 참조하십시오.

참고 항목

작업

연습: VBA에서 응용 프로그램 수준 추가 기능의 코드 호출

방법: Visual Studio에서 Office 프로젝트 만들기

개념

런타임에 응용 프로그램 수준 추가 기능의 Word 문서 및 Excel 통합 문서 확장

다른 Office 솔루션에서 응용 프로그램 수준 추가 기능의 코드 호출

확장성 인터페이스를 사용하여 UI 기능 사용자 지정

응용 프로그램 수준 추가 기능 아키텍처

Office 솔루션에서 코드 작성

기타 리소스

Office 솔루션 개발