연습: 사용자 지정 작업 창을 사용하여 응용 프로그램 자동화
이 연습에서는 PowerPoint를 자동화하는 사용자 지정 작업 창을 만드는 방법을 보여 줍니다.사용자 지정 작업 창에서 사용자가 MonthCalendar 컨트롤을 클릭하면 슬라이드에 날짜가 삽입됩니다.
적용 대상: 이 항목의 정보는 Outlook 2013 및 Outlook 2010의 응용 프로그램 수준 프로젝트에 적용됩니다. 자세한 내용은 Office 응용 프로그램 및 프로젝트 형식에 따라 사용 가능한 기능을 참조하십시오.
이 연습에서는 PowerPoint만 사용하지만 연습에서 보여 주는 기본 개념은 위에 나열된 모든 응용 프로그램에 적용됩니다.
이 연습에서는 다음 작업을 수행합니다.
사용자 지정 작업 창의 사용자 인터페이스 디자인
사용자 지정 작업 창을 사용하여 PowerPoint 자동화
PowerPoint에서 사용자 지정 작업 창 표시
[!참고]
일부 Visual Studio 사용자 인터페이스 요소의 경우 다음 지침에 설명된 것과 다른 이름 또는 위치가 시스템에 표시될 수 있습니다.설치한 Visual Studio 버전과 사용하는 설정에 따라 이러한 요소가 결정됩니다.자세한 내용은 Visual Studio 설정을 참조하십시오.
사전 요구 사항
이 연습을 완료하려면 다음 구성 요소가 필요합니다.
-
Microsoft Office 개발자 도구를 포함하는 Visual Studio 2012 버전입니다. 자세한 내용은 [Office 솔루션을 개발할 수 있도록 컴퓨터 구성](bb398242\(v=vs.110\).md)을 참조하십시오.
- Microsoft PowerPoint 2010 또는 PowerPoint 2013.
추가 기능 프로젝트 만들기
첫 번째 단계에서는 PowerPoint용 추가 기능 프로젝트를 만듭니다.
새 프로젝트를 만들려면
PowerPoint 추가 기능 프로젝트 템플릿을 사용하여 MyAddIn이라는 PowerPoint 추가 기능 프로젝트를 만듭니다.자세한 내용은 방법: Visual Studio에서 Office 프로젝트 만들기을 참조하십시오.
Visual Studio에서 ThisAddIn.cs 또는 ThisAddIn.vb 코드 파일이 열리고 솔루션 탐색기에 MyAddIn 프로젝트가 추가됩니다.
사용자 지정 작업 창의 사용자 인터페이스 디자인
사용자 지정 작업 창을 만드는 비주얼 디자이너는 없지만 사용자 정의 컨트롤을 원하는 레이아웃으로 디자인할 수 있습니다.이 연습의 뒷부분에서 사용자 지정 작업 창에 사용자 정의 컨트롤을 추가합니다.
사용자 지정 작업 창의 사용자 인터페이스를 디자인하려면
프로젝트 메뉴에서 사용자 정의 컨트롤 추가를 클릭합니다.
새 항목 추가 대화 상자에서 사용자 정의 컨트롤의 이름을 MyUserControl로 변경하고 추가를 클릭합니다.
사용자 정의 컨트롤이 디자이너에서 열립니다.
도구 상자의 공용 컨트롤 탭에서 MonthCalendar 컨트롤을 사용자 정의 컨트롤로 끌어 놓습니다.
MonthCalendar 컨트롤이 사용자 정의 컨트롤의 디자인 화면보다 크면 사용자 정의 컨트롤의 크기를 MonthCalendar 컨트롤에 맞게 조정합니다.
사용자 지정 작업 창을 사용하여 PowerPoint 자동화
이 추가 기능의 목적은 선택된 날짜를 활성 프레젠테이션의 첫 번째 슬라이드에 삽입하는 것입니다.컨트롤의 DateChanged 이벤트를 사용하여 선택된 날짜가 변경될 때마다 날짜를 추가합니다.
사용자 지정 작업 창에서 PowerPoint를 자동화하려면
디자이너에서 MonthCalendar 컨트롤을 두 번 클릭합니다.
MyUserControl.cs 또는 MyUserControl.vb 파일이 열리고 DateChanged 이벤트의 이벤트 처리기가 만들어집니다.
파일 맨 위에 다음 코드를 추가합니다.이 코드에서는 Microsoft.Office.Core 및 Microsoft.Office.Interop.PowerPoint 네임스페이스의 별칭을 만듭니다.
Imports Office = Microsoft.Office.Core Imports PowerPoint = Microsoft.Office.Interop.PowerPoint
using Office = Microsoft.Office.Core; using PowerPoint = Microsoft.Office.Interop.PowerPoint;
MyUserControl 클래스에 다음 코드를 추가합니다.이 코드에서는 Shape 개체를 MyUserControl의 멤버로 선언합니다.다음 단계에서는 이 Shape를 사용하여 활성 프레젠테이션의 슬라이드에 텍스트 상자를 추가합니다.
Private TextBox As PowerPoint.Shape
private PowerPoint.Shape textbox;
monthCalendar1_DateChanged 이벤트 처리기를 다음 코드로 바꿉니다.이 코드에서는 활성 프레젠테이션의 첫 번째 슬라이드에 텍스트 상자를 추가한 다음 현재 선택된 날짜를 이 텍스트 상자에 추가합니다.이때 Globals.ThisAddIn 개체를 사용하여 PowerPoint의 개체 모델에 액세스합니다.
Private Sub MonthCalendar1_DateChanged( _ ByVal sender As System.Object, _ ByVal e As System.Windows.Forms.DateRangeEventArgs) _ Handles MonthCalendar1.DateChanged Try If TextBox IsNot Nothing Then TextBox.Delete() End If Dim Slide As 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 = _ System.Drawing.Color.DarkViolet.ToArgb() Catch ex As Exception System.Windows.Forms.MessageBox.Show(ex.ToString()) End Try End Sub
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()); } }
솔루션 탐색기에서 MyAddIn 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 빌드를 클릭합니다.프로젝트가 오류 없이 빌드되는지 확인합니다.
사용자 지정 작업 창 표시
추가 기능이 시작될 때 사용자 지정 작업 창을 표시하려면 추가 기능의 Startup 이벤트 처리기에서 사용자 정의 컨트롤을 작업 창에 추가합니다.
사용자 지정 작업 창을 표시하려면
솔루션 탐색기에서 PowerPoint를 확장합니다.
ThisAddIn.cs 또는 ThisAddIn.vb를 마우스 오른쪽 단추로 클릭하고 코드 보기를 클릭합니다.
ThisAddIn 클래스에 다음 코드를 추가합니다.이 코드는 MyUserControl 및 CustomTaskPane의 인스턴스를 ThisAddIn 클래스의 멤버로 선언합니다.
Private myUserControl1 As MyUserControl Private myCustomTaskPane As Microsoft.Office.Tools.CustomTaskPane
private MyUserControl myUserControl1; private Microsoft.Office.Tools.CustomTaskPane myCustomTaskPane;
ThisAddIn_Startup 이벤트 처리기를 다음 코드로 바꿉니다.이 코드는 CustomTaskPanes 컬렉션에 MyUserControl 개체를 추가하여 새 CustomTaskPane을 만들고작업 창을 표시합니다.
Private Sub ThisAddIn_Startup(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Me.Startup myUserControl1 = New MyUserControl myCustomTaskPane = Me.CustomTaskPanes.Add(myUserControl1, "Calendar") myCustomTaskPane.Visible = True End Sub
private void ThisAddIn_Startup(object sender, System.EventArgs e) { myUserControl1 = new MyUserControl(); myCustomTaskPane = this.CustomTaskPanes.Add(myUserControl1, "Calendar"); myCustomTaskPane.Visible = true; }
추가 기능 테스트
프로젝트를 실행하면 PowerPoint가 열리고 추가 기능을 통해 사용자 지정 작업 창이 표시됩니다.MonthCalendar 컨트롤을 클릭하여 코드를 테스트합니다.
추가 기능을 테스트하려면
F5 키를 눌러 프로젝트를 실행합니다.
사용자 지정 작업 창이 표시되는지 확인합니다.
작업 창의 MonthCalendar 컨트롤에서 날짜를 클릭합니다.
해당 날짜가 활성 프레젠테이션의 첫 번째 슬라이드에 삽입됩니다.
다음 단계
다음 항목에서는 사용자 지정 작업 창을 만드는 방법에 대해 더 자세히 설명합니다.
다른 응용 프로그램용 추가 기능의 사용자 지정 작업 창을 만듭니다.사용자 지정 작업 창을 지원하는 응용 프로그램에 대한 자세한 내용은 사용자 지정 작업 창를 참조하십시오.
사용자 지정 작업 창을 숨기거나 표시하는 데 사용할 수 있는 리본 메뉴 단추를 만듭니다.자세한 내용은 연습: 사용자 지정 작업 창과 리본 단추 동기화을 참조하십시오.
Outlook에 열려 있는 모든 전자 메일 메시지에 대한 사용자 지정 작업 창을 만듭니다.자세한 내용은 연습: Outlook에서 전자 메일 메시지와 함께 사용자 지정 작업 창 표시을 참조하십시오.
참고 항목
작업
연습: Outlook에서 전자 메일 메시지와 함께 사용자 지정 작업 창 표시