다음을 통해 공유


여러 응용 프로그램 창의 사용자 지정 작업 창 관리

업데이트: 2007년 11월

적용 대상

이 항목의 정보는 지정된 Visual Studio Tools for Office 프로젝트 및 Microsoft Office 응용 프로그램에만 적용됩니다.

프로젝트 형식

  • 응용 프로그램 수준 프로젝트

Microsoft Office 응용 프로그램

  • Excel 2007

  • InfoPath 2007

  • Outlook 2007

  • PowerPoint 2007

  • Word 2007

자세한 내용은 응용 프로그램 및 프로젝트 형식에 따라 사용 가능한 기능을 참조하십시오.

응용 프로그램에서 여러 개의 창을 사용하는 사용자 지정 작업 창을 만들어 문서 및 다른 항목을 표시하는 경우 사용자가 예상하는 작업 창이 표시되도록 추가 단계를 수행해야 합니다.

모든 응용 프로그램의 사용자 지정 작업 창은 사용자에게 문서 또는 항목의 보기를 표시하는 문서 프레임 창과 연결됩니다. 작업 창은 연결된 창이 표시되는 경우에만 나타납니다. 그러나 모든 응용 프로그램에서 동일한 방식으로 문서 프레임 창을 사용하는 것은 아닙니다.

다음 응용 프로그램 그룹에는 각각 다른 개발 요구 사항이 있습니다.

  • Outlook

  • Word 및 InfoPath

  • Excel 및 PowerPoint

Outlook

Outlook용 사용자 지정 작업 창을 만들면 사용자 지정 작업 창이 특정 탐색기 창이나 검사기 창에 연결됩니다. 탐색기는 폴더의 내용이 표시되는 창이고, 검사기는 전자 메일 메시지 또는 작업과 같은 항목이 표시되는 창입니다.

여러 탐색기 창이나 검사기 창에 사용자 지정 작업 창을 표시하려면 탐색기 또는 검사기 창이 열릴 때 사용자 지정 작업 창의 새 인스턴스를 만들어야 합니다. 이렇게 하려면 탐색기 또는 검사기 창이 만들어질 때 발생하는 이벤트를 처리하고 이벤트 처리기에 작업 창을 만듭니다. 표시되는 창에 따라 작업 창을 숨기거나 표시하도록 탐색기 및 검사기 이벤트를 처리할 수도 있습니다.

작업 창을 특정 탐색기 또는 검사기에 연결하려면 CustomTaskPaneCollection.Add(UserControl, String, Object) 메서드를 사용하여 작업 창을 만든 다음 Explorer 또는 Inspector 개체를 window 매개 변수에 전달합니다. 사용자 지정 작업 창을 만드는 방법에 대한 자세한 내용은 사용자 지정 작업 창 개요를 참조하십시오.

열리는 모든 전자 메일 메시지에 대한 작업 창을 만드는 방법을 보여 주는 연습은 연습: Outlook에서 전자 메일 메시지와 함께 사용자 지정 작업 창 표시를 참조하십시오.

Outlook 이벤트

탐색기 창의 상태를 모니터링하려면 다음과 같은 탐색기 관련 이벤트를 처리합니다.

검사기 창의 상태를 모니터링하려면 다음과 같은 검사기 관련 이벤트를 처리합니다.

Outlook에서 사용자 지정 작업 창의 여러 인스턴스 방지

Outlook 창에 사용자 지정 작업 창의 인스턴스가 여러 개 표시되지 않게 하려면 각 창이 닫힐 때 ThisAddIn 클래스의 CustomTaskPanes 컬렉션에서 사용자 지정 작업 창을 명시적으로 제거합니다. 창을 닫을 때 발생하는 ExplorerEvents_10_Event.Close 또는 InspectorEvents_10_Event.Close 등의 이벤트에서 Remove 메서드를 호출합니다.

사용자 지정 작업 창을 명시적으로 제거하지 않으면 Outlook 창에 사용자 지정 작업 창의 인스턴스가 여러 개 표시될 수 있습니다. Outlook에서는 기존 창이 재활용되기도 하며, 이러한 경우 이전에 연결된 사용자 지정 작업 창에 대한 참조가 유지됩니다.

Word 및 InfoPath

Word 및 InfoPath에서는 서로 다른 문서 프레임 창에 각 문서를 표시합니다. 이러한 응용 프로그램의 사용자 지정 작업 창을 만들면 해당 사용자 지정 작업 창은 특정 문서에만 연결됩니다. 사용자가 다른 문서를 열면 해당 사용자 지정 작업 창은 이전 문서가 다시 표시될 때까지 숨겨집니다.

여러 문서에서 사용자 지정 작업 창을 표시하려면 사용자가 새 문서를 만들거나 기존 문서를 열 때 사용자 지정 작업 창의 새 인스턴스를 만듭니다. 이렇게 하려면 문서가 만들어지거나 열릴 때 발생하는 이벤트를 처리하고 이벤트 처리기에 작업 창을 만듭니다. 표시되는 문서에 따라 작업 창을 숨기거나 표시하도록 문서 이벤트를 처리할 수도 있습니다.

작업 창을 특정 문서 창에 연결하려면 CustomTaskPaneCollection.Add(UserControl, String, Object) 메서드를 사용하여 작업 창을 만든 다음 Microsoft.Office.Interop.Word.Window(Word의 경우) 또는 Microsoft.Office.Interop.InfoPath.WindowObject(InfoPath의 경우)를 window 매개 변수에 전달합니다. 사용자 지정 작업 창을 만드는 방법에 대한 자세한 내용은 사용자 지정 작업 창 개요를 참조하십시오.

Word 이벤트

Word에서 문서 창의 상태를 모니터링하려면 다음 이벤트를 처리합니다.

InfoPath 이벤트

InfoPath에서 문서 창의 상태를 모니터링하려면 다음 이벤트를 처리합니다.

Excel 및 PowerPoint

Excel 및 PowerPoint에서는 모든 문서, 즉 통합 문서 및 프레젠테이션에 대해 하나의 문서 프레임 창을 만듭니다. 이러한 응용 프로그램에서 사용자 지정 작업 창을 만들면 작업 창은 응용 프로그램에서 열려 있는 모든 문서에 사용할 수 있습니다. 각 문서에 대해 작업 창이 표시되도록 하는 데 필요한 추가 작업은 없습니다.

그러나 활성 상태인 문서에 따라 작업 창을 표시 또는 숨기거나 작업 창에 다양한 UI(사용자 인터페이스) 또는 데이터를 표시할 수도 있습니다. 이렇게 하려면 문서가 만들어지거나 열리거나 활성화될 때 발생하는 이벤트를 처리하고 이벤트 처리기의 작업 창을 업데이트합니다.

Excel 이벤트

Excel에서 통합 문서의 상태를 모니터링하려면 다음 이벤트를 처리합니다.

PowerPoint 이벤트

PowerPoint에서 프레젠테이션의 상태를 모니터링하려면 다음 이벤트를 처리합니다.

  • Microsoft.Office.Interop.PowerPoint.EApplication_Event.AfterNewPresentation

  • Microsoft.Office.Interop.PowerPoint.EApplication_Event.AfterPresentationOpen

  • Microsoft.Office.Interop.PowerPoint.EApplication_Event.NewPresentation

  • Microsoft.Office.Interop.PowerPoint.EApplication_Event.PresentationOpen

  • Microsoft.Office.Interop.PowerPoint.EApplication_Event.WindowActivate

  • Microsoft.Office.Interop.PowerPoint.EApplication_Event.WindowDeactivate

예제

다음 코드 예제에서는 Excel 추가 기능에서 WorkbookActivate 이벤트의 이벤트 처리기에 사용자 지정 작업 창을 숨기거나 표시하는 방법을 보여 줍니다. 각 통합 문서가 활성화되면 작업 창은 통합 문서의 이름이 SalesData.xls인 경우에만 표시됩니다. 그렇지 않은 경우 작업 창이 숨겨집니다. 이 예제를 실행하려면 Visual Studio Tools for Office에서 ThisAddIn 클래스에 생성하는 기본 ThisAddIn_Startup 이벤트 처리기를 다음 코드로 바꿉니다. 이 예제에서는 프로젝트에 UserControl1이라는 UserControl이 포함되어 있다고 가정합니다.

Dim myUserControl As UserControl1
Dim myCustomTaskPane As Microsoft.Office.Tools.CustomTaskPane

Private Sub ThisAddIn_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles Me.Startup
    myUserControl = New UserControl1()
    myCustomTaskPane = Me.CustomTaskPanes.Add(myUserControl, "Sales Task Pane")
End Sub

Private Sub Application_WorkbookActivate(ByVal Wb As Excel.Workbook) _
    Handles Application.WorkbookActivate

    If Wb.Name = "SalesData.xlsx" Then
        myCustomTaskPane.Visible = True
    Else
        myCustomTaskPane.Visible = False
    End If
End Sub
private UserControl1 myUserControl;
private Microsoft.Office.Tools.CustomTaskPane myCustomTaskPane;

private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
    this.Application.WorkbookActivate += new Excel.AppEvents_WorkbookActivateEventHandler(
        Application_WorkbookActivate);

    myUserControl = new UserControl1();
    myCustomTaskPane = this.CustomTaskPanes.Add(myUserControl, "Sales Task Pane");
}

void Application_WorkbookActivate(Excel.Workbook Wb)
{
    if (Wb.Name == "SalesData.xlsx")
        myCustomTaskPane.Visible = true;
    else
        myCustomTaskPane.Visible = false;
}

참고 항목

작업

방법: 응용 프로그램에 사용자 지정 작업 창 추가

연습: Outlook에서 전자 메일 메시지와 함께 사용자 지정 작업 창 표시

방법: Outlook에서 전자 메일 메시지를 보여 주는 사용자 지정 작업 창 표시

연습: 사용자 지정 작업 창과 리본 단추 동기화

개념

사용자 지정 작업 창 개요