다음을 통해 공유


작업 창 개요

중요합니다

작업 기능은 Office 2024부터 Microsoft Word에서 사용 중지되었습니다. 이 기능은 Microsoft Word에서 다음 Office 릴리스에서만 사용할 수 있습니다.

  • 마이크로소프트 365
  • 오피스 LTSC 프로페셔널 플러스 2021
  • 오피스 LTSC 스탠다드 2021
  • 오피스 프로페셔널 플러스 2016, 2019
  • 오피스 스탠다드 2016, 2019

작업 창은 특정 Microsoft Office Word 문서 또는 Microsoft Office Excel 통합 문서에 연결되는 사용자 지정 가능한 문서 작업 창입니다. 작업 창은 Excel의 XML 원본 작업창 또는 Word의 스타일 및 서식 작업창과 같은 다른 기본 제공 작업창과 함께 Office 작업창 내에서 호스팅됩니다. Windows Forms 컨트롤 또는 WPF 컨트롤을 사용하여 작업 창 사용자 인터페이스를 디자인할 수 있습니다.

적용 대상: 이 항목의 정보는 Excel 및 Word에 대한 문서 수준 프로젝트에 적용됩니다. 자세한 내용은 Office 응용 프로그램 및 프로젝트 유형 사용할 수 있는기능을 참조하세요.

작업 창은 Word 또는 Excel에 대한 문서 수준 사용자 지정에서만 만들 수 있습니다. VSTO 추가 기능에서는 작업 창을 만들 수 없습니다. 자세한 내용은 Office 응용 프로그램 및 프로젝트 유형 사용할 수 있는기능을 참조하세요.

비고

작업 창은 사용자 지정 작업창과 다릅니다. 사용자 지정 작업창은 특정 문서가 아닌 응용 프로그램과 연결됩니다. 일부 Microsoft Office 응용 프로그램에 대한 VSTO 추가 기능에서 사용자 지정 작업창을 만들 수 있습니다. 자세한 내용은 사용자 지정 작업창을 참조하십시오.

작업 창 표시

작업 창은 클래스로 ActionsPane 표시됩니다. 문서 수준 프로젝트를 만들 때 프로젝트의 (Excel) 또는 ActionsPane (Word의 경우) 클래스 필드를 ThisWorkbook 사용하여 ThisDocument 이 클래스의 인스턴스를 코드에 사용할 수 있습니다. 작업 창을 표시하려면 필드의 속성에 Controls Windows Forms 컨트롤을 ActionsPane 추가합니다. 다음 코드 예제에서는 작업 창에 명명된 actions 컨트롤을 추가합니다.

this.ActionsPane.Controls.Add(actions);

작업 창은 런타임에 컨트롤을 명시적으로 추가하는 즉시 표시됩니다. 작업 창이 표시되면 사용자의 작업에 대한 응답으로 컨트롤을 동적으로 추가하거나 제거할 수 있습니다. 일반적으로 사용자가 문서를 처음 열 때 작업 창이 표시되도록 OR StartupThisDocument 이벤트 처리기에 ThisWorkbook 작업 창을 표시하는 코드를 추가합니다. 그러나 문서에서 사용자의 작업에 대한 응답으로만 작업 창을 표시할 수 있습니다. 예를 들어, 문서의 컨트롤 이벤트에 코드를 Click 추가할 수 있습니다.

작업 창에 여러 컨트롤 추가

작업 창에 여러 컨트롤을 추가하는 경우 사용자 정의 컨트롤의 컨트롤을 그룹화한 다음 사용자 정의 컨트롤을 Controls 속성에 추가해야 합니다. 이 프로세스에는 다음 단계가 포함됩니다.

  1. 작업 창 컨트롤 또는 사용자 정의 컨트롤 항목을 프로젝트에 추가하여 작업 창의 UI(사용자 인터페이스)를 만듭니다. 이 두 항목에는 모두 사용자 지정 Windows Forms UserControl 클래스가 포함되어 있습니다. 작업 창 컨트롤사용자 정의 컨트롤 항목은 동일합니다. 유일한 차이점은 이름입니다.

  2. 디자이너를 사용하거나 코드를 작성하여 Windows Forms 컨트롤을 추가합니다 UserControl .

    비고

    WPF를 UserControl Windows Forms UserControl에 추가하여 작업 창에 WPF 컨트롤을 추가할 수도 있습니다. 자세한 내용은 Office 솔루션에서 WPF 컨트롤 사용을 참조하세요.

  3. 사용자 지정 사용자 정의 컨트롤의 인스턴스를 프로젝트의 (Excel) 또는 ActionsPane (Word) 클래스 필드에 ThisWorkbook 포함된 ThisDocument 컨트롤에 추가합니다.

    이 프로세스를 자세히 보여 주는 예제는 방법: Word 문서 또는 Excel 통합 문서에 작업 창 추가를 참조하십시오.

작업 창 숨기기

클래스에는 ActionsPane 메서드와 Hide 속성이 있지만 클래스 자체의 멤버를 사용하여 사용자 인터페이스에서 작업 창을 제거할 수는 없습니다Visible.ActionsPane 메서드를 호출 Hide 하거나 속성을 Visible로 설정하면 작업 창의 컨트롤만 숨겨지고 작업창은 숨겨지지 않습니다.

솔루션에서 작업창을 숨기려면 다음과 같은 몇 가지 옵션이 있습니다.

  • Word의 경우 문서 작업 창을 나타내는 개체의 속성을 VisibleTaskPane로 설정합니다. 다음 코드 예제는 프로젝트의 클래스에서 ThisDocument 실행하기 위한 것입니다.

    this.Application.TaskPanes[Word.WdTaskPanes.wdTaskPaneDocumentActions].Visible = false;
    
  • Excel의 경우 개체의 속성을 DisplayDocumentActionTaskPaneApplication로 설정합니다. 다음 코드 예제는 프로젝트의 클래스에서 ThisWorkbook 실행하기 위한 것입니다.

    this.Application.DisplayDocumentActionTaskPane = false;
    
  • Word 또는 Excel의 경우 작업창을 나타내는 명령 모음의 속성을 Visible로 설정할 수도 있습니다. 다음 코드 예제는 프로젝트의 or ThisDocument 클래스에서 ThisWorkbook 실행하기 위한 것입니다.

    this.Application.CommandBars["Task Pane"].Visible = false;
    

문서가 열릴 때 작업 창 지우기

작업 창이 표시되는 동안 사용자가 문서를 저장하면 작업 창에 컨트롤이 포함되어 있는지 여부에 관계없이 문서를 열 때마다 작업 창이 표시됩니다. 작업 창이 표시되는 시점을 제어하려면 또는 Clear 의 이벤트 처리기 ActionsPane 에서 Startup 필드의 메서드를 ThisDocument 호출하여 ThisWorkbook 문서가 열릴 때 작업 창이 표시되지 않도록 합니다.

작업 창이 닫히는 시점 확인

작업 창이 닫혀 있을 때 발생하는 이벤트는 없습니다. ActionsPane 클래스에 이벤트가 있지만 VisibleChanged 최종 사용자가 작업 창을 닫을 때는 이 이벤트가 발생하지 않습니다. 대신 이 이벤트는 메서드를 호출 Hide 하거나 속성을 Visible로 설정하여 작업 창의 컨트롤을 숨길 때 발생합니다.

사용자가 작업 창을 닫을 때 응용 프로그램의 UI(사용자 인터페이스)에서 다음 절차 중 하나를 수행하여 작업 창을 다시 표시할 수 있습니다.

Word 또는 Excel의 UI를 사용하여 작업 창을 표시하려면
  1. 리본에서 View(보기 ) 탭을 클릭합니다.

  2. Show/Hide 그룹에서 Document Actions 토글 버튼을 클릭합니다.

프로그램 작업 창 이벤트

작업 창에 여러 사용자 컨트롤을 추가한 다음 사용자 정의 컨트롤을 표시하거나 숨겨 문서의 이벤트에 응답하는 코드를 작성할 수 있습니다. XML 스키마 요소를 문서에 매핑하면 삽입 지점이 XML 요소 중 하나 내에 있을 때마다 작업 창에 특정 사용자 컨트롤을 표시할 수 있습니다. 자세한 내용은 방법: Visual Studio 내에서 Word 문서에 스키마 매핑방법: Visual Studio 내에서 워크시트에 스키마 매핑을 참조하십시오.

또한 호스트 컨트롤, 응용 프로그램 또는 문서 이벤트를 포함한 모든 개체의 이벤트에 응답하는 코드를 작성할 수 있습니다. 자세한 내용은 연습: NamedRange 컨트롤의 이벤트에 대한 프로그래밍을 참조하십시오.

작업 창의 컨트롤에 데이터 바인딩Bind data to controls on the actions pane

작업 창의 컨트롤에는 Windows Forms의 컨트롤과 동일한 데이터 바인딩 기능이 있습니다. 컨트롤을 데이터 집합, 형식화된 데이터 집합 및 XML과 같은 데이터 소스에 바인딩할 수 있습니다. 자세한 내용은 데이터 바인딩 및 Windows Forms을 참조하십시오.

작업 창의 컨트롤과 문서의 컨트롤을 동일한 데이터 세트에 바인딩할 수 있습니다. 예를 들어 작업 창의 컨트롤과 워크시트의 컨트롤 간에 마스터/세부 관계를 만들 수 있습니다. 자세한 내용은 연습: Excel 작업 창컨트롤에 데이터 바인딩을 참조하세요.

작업 창 컨트롤에서 데이터 유효성 검사

작업 창에 있는 컨트롤의 이벤트 처리기에 Validating 메시지 상자를 표시하면 포커스가 컨트롤에서 메시지 상자로 이동할 때 이벤트가 두 번 발생할 수 있습니다. 이 문제를 방지하려면 컨트롤을 사용하여 ErrorProvider 유효성 검사 오류 메시지를 표시합니다.

사용자 컨트롤 스택 순서

여러 사용자 정의 컨트롤을 사용하는 경우 사용자 컨트롤이 세로로 또는 가로로 도킹되어 있는지 여부에 관계없이 작업 창에 사용자 컨트롤을 적절하게 쌓는 코드를 작성할 수 있습니다. 작업 창에서 속성의 열거형을 사용하여 StackStyle 사용자 정의 컨트롤의 스택 순서를 설정할 수 있습니다 StackOrder . 자세한 내용은 방법: 작업 창에서 컨트롤 레이아웃 관리를 참조하십시오.

속성은 StackOrder 다음과 같은 StackStyle 열거형 값을 사용할 수 있습니다.

스태킹 스타일 정의
하단에서(FromBottom) 작업 창의 아래쪽에서 스택합니다.
왼쪽에서(FromLeft) 작업 창의 왼쪽에서 스택합니다.
오른쪽에서(FromRight) 작업 창의 오른쪽에서 스택을 클릭합니다.
맨 위에서(FromTop) 작업 창의 맨 위에서 스택합니다.
없음 정의된 적재 순서가 없습니다. 순서는 개발자가 제어합니다.

다음 코드는 작업 창의 맨 위에서 사용자 정의 컨트롤을 쌓도록 속성을 설정합니다 StackOrder .

this.ActionsPane.StackOrder = Microsoft.Office.Tools.StackStyle.FromTop;

앵커 컨트롤

사용자가 런타임에 작업 창의 크기를 조정하면 작업 창에 따라 컨트롤의 크기를 조정할 수 있습니다. Windows Forms 컨트롤의 속성을 사용하여 Anchor 컨트롤을 작업 창에 고정할 수 있습니다. 동일한 방식으로 Windows Forms 컨트롤을 사용자 정의 컨트롤에 고정할 수도 있습니다. 자세한 내용은 방법: Windows Forms에서 컨트롤 앵커를 참조하십시오.

작업 창 크기 조정

의 크기는 ActionsPane 작업 창에 포함되어 있으므로 ActionsPane 직접 변경할 수 없습니다. 그러나 작업 창을 나타내는 의 Width 속성을 설정하여 CommandBar 프로그래밍 방식으로 작업창의 너비를 변경할 수 있습니다. 작업창이 가로로 고정되어 있거나 부동 상태인 경우 작업 창의 높이를 변경할 수 있습니다.

프로그래밍 방식으로 작업창 크기를 조정하는 것은 사용자가 자신의 필요에 가장 적합한 작업창 크기를 선택할 수 있어야 하므로 권장되지 않습니다. 그러나 작업창의 너비를 조정해야 하는 경우 다음 코드를 사용하여 이 작업을 수행할 수 있습니다.

this.CommandBars["Task Pane"].Width = 200;

작업 창 위치 변경

ActionsPane 작업창에 포함되어 있으므로 직접 위치를 변경할 수 없습니다. 그러나 작업창을 나타내는 의 Position 속성을 설정하여 CommandBar 프로그래밍 방식으로 작업창을 이동할 수 있습니다.

프로그래밍 방식으로 작업창의 위치를 변경하는 것은 사용자가 화면에서 자신의 필요에 가장 적합한 작업창 위치를 선택할 수 있어야 하므로 권장되지 않습니다. 그러나 작업창을 특정 위치로 이동해야 하는 경우 다음 코드를 사용하여 이 작업을 수행할 수 있습니다.

this.CommandBars["Task Pane"].Position =
    Microsoft.Office.Core.MsoBarPosition.msoBarLeft;

비고

최종 사용자는 언제든지 작업창의 위치를 수동으로 변경할 수 있습니다. 작업창이 프로그래밍 방식으로 지정한 위치에 도킹된 상태로 유지되도록 할 수 있는 방법은 없습니다. 그러나 방향 변경을 확인하고 작업 창의 컨트롤이 올바른 방향으로 쌓여 있는지 확인할 수 있습니다. 자세한 내용은 방법: 작업 창에서 컨트롤 레이아웃 관리를 참조하십시오.

TopLeftActionsPane 속성을 설정해도 개체가 작업창에 포함되어 있기 때문에 ActionsPane 위치가 변경되지 않습니다.

작업창이 고정되어 있지 않으면 작업창을 나타내는 의 TopLeft 속성을 설정할 CommandBar 수 있습니다. 다음 코드는 도킹되지 않은 작업창을 문서의 왼쪽 위 모퉁이로 이동합니다.

if (this.CommandBars["Task Pane"].Position == 
    Microsoft.Office.Core.MsoBarPosition.msoBarFloating)
{
    this.CommandBars["Task Pane"].Top = 0;
    this.CommandBars["Task Pane"].Left = 0;
}