연습: 사용자 지정 작업창에서 애플리케이션 자동화

이 연습에서는 PowerPoint를 자동화하는 사용자 지정 작업창을 만드는 방법을 보여 줍니다. 사용자 지정 작업창은 사용자가 사용자 지정 작업창에 있는 MonthCalendar 컨트롤을 클릭할 때 날짜를 슬라이드에 삽입합니다.

적용 대상: 이 항목의 정보는 Outlook의 VSTO 추가 기능 프로젝트에 적용됩니다. 자세한 내용은 Office 애플리케이션 및 프로젝트 형식에 따라 사용 가능한 기능을 참조하세요.

이 연습에서는 특별히 PowerPoint를 사용하지만 위에 나열된 애플리케이션에도 연습에서 설명하는 개념을 적용할 수 있습니다.

이 연습에서는 다음 작업을 수행합니다.

  • 사용자 지정 작업창의 사용자 인터페이스 디자인

  • 사용자 지정 작업창에서 PowerPoint 자동화

  • PowerPoint에서 사용자 지정 작업창 표시

참고 항목

일부 Visual Studio 사용자 인터페이스 요소의 경우 다음 지침에 설명된 것과 다른 이름 또는 위치가 시스템에 표시될 수 있습니다. 이러한 요소는 사용하는 Visual Studio 버전 및 설정에 따라 결정됩니다. 자세한 내용은 Visual Studio IDE 개인 설정을 참조하세요.

필수 조건

이 연습을 완료하려면 다음과 같은 구성 요소가 필요합니다.

추가 기능 프로젝트 만들기

첫 번째 단계는 PowerPoint용 VSTO 추가 기능 프로젝트를 만드는 것입니다.

새 프로젝트를 만들려면

  1. PowerPoint 추가 기능 프로젝트 템플릿을 사용하여 이름이 MyAddIn인 PowerPoint VSTO 추가 기능 프로젝트를 만듭니다. 자세한 내용은 방법: Visual Studio에서 Office 프로젝트 만들기를 참조하세요.

    Visual Studio에서는 ThisAddIn.cs 또는 ThisAddIn.vb 코드 파일을 열고 MyAddIn 프로젝트를 솔루션 탐색기에 추가합니다.

사용자 지정 작업창의 사용자 인터페이스 디자인

사용자 지정 작업창을 위한 비주얼 디자이너는 없지만 원하는 레이아웃을 사용하여 사용자 정의 컨트롤을 디자인할 수 있습니다. 이 연습 뒷부분에서는 사용자 지정 작업창에 사용자 정의 컨트롤을 추가합니다.

사용자 지정 작업창의 사용자 인터페이스를 디자인하려면

  1. 프로젝트 메뉴에서 사용자 정의 컨트롤 추가를 클릭합니다.

  2. 새 항목 추가 대화 상자에서 사용자 정의 컨트롤의 이름을 MyUserControl로 변경하고 추가를 클릭합니다.

    사용자 정의 컨트롤이 디자이너에서 열립니다.

  3. 도구 상자공용 컨트롤탭에서 MonthCalendar 컨트롤을 사용자 정의 컨트롤로 끌어 놓습니다.

    MonthCalendar 컨트롤이 사용자 정의 컨트롤의 디자인 화면보다 큰 경우 사용자 정의 컨트롤의 크기를 조정하여 MonthCalendar 컨트롤에 맞춥니다.

사용자 지정 작업창에서 PowerPoint 자동화

VSTO 추가 기능의 목적은 선택한 날짜를 활성 프레젠테이션의 첫 번째 슬라이드에 넣는 것입니다. 컨트롤의 DateChanged 이벤트를 사용하여 변경될 때마다 선택한 날짜를 추가합니다.

사용자 지정 작업창에서 PowerPoint를 자동화하려면

  1. 디자이너에서 MonthCalendar 컨트롤을 두 번 클릭합니다.

    MyUserControl.cs 또는 MyUserControl.vb 파일이 열리고 DateChanged 이벤트에 대한 이벤트 처리기가 만들어집니다.

  2. 파일 맨 위에 다음 코드를 추가합니다. 이 코드에서는 Microsoft.Office.CorePowerPoint 네임스페이스에 대한 별칭을 만듭니다.

    using Office = Microsoft.Office.Core;
    using PowerPoint = Microsoft.Office.Interop.PowerPoint;
    
  3. MyUserControl 클래스에 다음 코드를 추가합니다. 이 코드에서는 Shape 개체를 MyUserControl의 멤버로 선언합니다. 다음 단계에서는 이 Shape를 사용하여 활성 프레젠테이션의 슬라이드에 텍스트 상자를 추가합니다.

    private PowerPoint.Shape textbox;
    
  4. monthCalendar1_DateChanged 이벤트 처리기를 다음 코드로 바꿉니다. 이 코드에서는 활성 프레젠테이션의 첫 번째 슬라이드에 텍스트 상자를 추가한 다음 현재 선택한 날짜를 텍스트 상자에 추가합니다. 이 코드는 Globals.ThisAddIn 개체를 사용하여 PowerPoint의 개체 모델에 액세스합니다.

    private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
    {
        try
        {
            if (textbox != null)
            {
                textbox.Delete();
            }
    
            PowerPoint.Slide slide =
                Globals.ThisAddIn.Application.ActivePresentation.Slides[1];
            textbox = slide.Shapes.AddTextbox(
                Office.MsoTextOrientation.msoTextOrientationHorizontal,
                50, 100, 600, 50);
            textbox.TextFrame.TextRange.Text = e.Start.ToLongDateString();
            textbox.TextFrame.TextRange.Font.Size = 48;
            textbox.TextFrame.TextRange.Font.Color.RGB =
                 Color.DarkViolet.ToArgb();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }
    
  5. 솔루션 탐색기에서 MyAddIn 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 빌드를 클릭합니다. 프로젝트가 오류 없이 빌드되는지 확인합니다.

사용자 지정 작업창 표시

VSTO 추가 기능이 시작할 때 사용자 지정 작업창을 표시하려면 VSTO 추가 기능의 Startup 이벤트 처리기에 있는 작업창에 사용자 정의 컨트롤을 추가합니다.

사용자 지정 작업창을 표시하려면

  1. 솔루션 탐색기에서 PowerPoint를 확장합니다.

  2. ThisAddIn.cs 또는 ThisAddIn.vb 를 마우스 오른쪽 단추로 클릭하고 코드 보기를 클릭합니다.

  3. ThisAddIn 클래스에 다음 코드를 추가합니다. 이 코드는 MyUserControlCustomTaskPane 의 인스턴스를 ThisAddIn 클래스의 멤버로 선언합니다.

    private MyUserControl myUserControl1;
    private Microsoft.Office.Tools.CustomTaskPane myCustomTaskPane;
    
  4. ThisAddIn_Startup 이벤트 처리기를 다음 코드로 바꿉니다. 이 코드는 CustomTaskPane 컬렉션에 MyUserControl 개체를 추가하여 새 CustomTaskPanes 을 만듭니다. 코드에서 작업창도 표시합니다.

    private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        myUserControl1 = new MyUserControl();
        myCustomTaskPane = this.CustomTaskPanes.Add(myUserControl1, "Calendar");
        myCustomTaskPane.Visible = true;
    }
    

추가 기능 테스트

프로젝트를 실행하면 PowerPoint가 열리고 VSTO 추가 기능에서 사용자 지정 작업창을 표시합니다. MonthCalendar 컨트롤을 클릭하여 코드를 테스트합니다.

VSTO 추가 기능을 테스트하려면

  1. F5 키를 눌러 프로젝트를 실행합니다.

  2. 사용자 지정 작업창이 표시되는지 확인합니다.

  3. 작업창의 MonthCalendar 컨트롤에서 날짜를 클릭합니다.

    날짜가 활성 프레젠테이션의 첫 번째 슬라이드에 삽입됩니다.

다음 단계

다음 항목에서는 사용자 지정 작업창을 만드는 방법에 대해 더 자세히 설명합니다.