다음을 통해 공유


Office 문서에 Windows Forms 컨트롤 추가

디자인 타임에 문서 수준 프로젝트에서 Microsoft Office Excel 및 Microsoft Office Word 문서에 Windows Forms 컨트롤을 추가할 수 있습니다. 런타임에 문서 수준 사용자 지정 및 VSTO 추가 기능에서 컨트롤을 추가할 수 있습니다. 예를 들어 사용자가 옵션 목록에서 선택할 수 있도록 워크시트에 ComboBox 컨트롤을 추가할 수 있습니다.

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

이 항목에서는 다음 작업에 대해 설명합니다.

디자인 타임에 컨트롤 추가

디자인 타임에 문서 수준 프로젝트의 문서에 Windows Forms 컨트롤을 추가하는 여러 가지 방법이 있습니다.

참고 항목

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

Windows Forms 컨트롤을 문서로 끌어오려면

  1. 문서가 디자이너에 표시되도록 Visual Studio에서 Excel 통합 문서 프로젝트 또는 Word 문서 프로젝트를 만들거나 엽니다. 프로젝트 만들기에 대한 내용은 방법: Visual Studio에서 Office 프로젝트 만들기를 참조하세요.

  2. 도구 상자공용 컨트롤 탭에서 추가할 컨트롤을 클릭하고 문서로 끌어옵니다.

    참고 항목

    Excel에서 컨트롤을 선택하는 경우 수식 입력줄=EMBED("WinForms.Control.Host","")가 표시됩니다. 이 텍스트는 필요하며 삭제하면 안 됩니다.

문서에서 Windows Forms 컨트롤을 그리려면

  1. 문서가 디자이너에 표시되도록 Visual Studio에서 Excel 통합 문서 프로젝트 또는 Word 문서 프로젝트를 만들거나 엽니다. 프로젝트 만들기에 대한 내용은 방법: Visual Studio에서 Office 프로젝트 만들기를 참조하세요.

  2. 도구 상자공용 컨트롤 탭에서 추가할 컨트롤을 클릭합니다.

  3. 문서에서 컨트롤의 왼쪽 위를 배치할 위치를 클릭한 다음 컨트롤의 오른쪽 아래를 배치할 위치로 끕니다.

    지정된 위치와 크기를 사용하여 컨트롤이 문서에 추가됩니다.

    참고 항목

    Excel에서 컨트롤을 선택하는 경우 수식 입력줄=EMBED("WinForms.Control.Host","")가 표시됩니다. 이 텍스트는 필요하며 삭제하면 안 됩니다.

컨트롤을 한 번 클릭하여 문서에 Windows Forms 컨트롤을 추가하려면

  1. 문서가 디자이너에 표시되도록 Visual Studio에서 Excel 통합 문서 프로젝트 또는 Word 문서 프로젝트를 만들거나 엽니다. 프로젝트 만들기에 대한 내용은 방법: Visual Studio에서 Office 프로젝트 만들기를 참조하세요.

  2. 도구 상자공용 컨트롤 탭에서 추가할 컨트롤을 클릭합니다.

  3. 문서에서 컨트롤을 추가할 위치를 클릭합니다.

    기본 크기를 사용하여 컨트롤이 문서에 추가됩니다.

    참고 항목

    Excel에서 컨트롤을 선택하는 경우 수식 입력줄=EMBED("WinForms.Control.Host","")가 표시됩니다. 이 텍스트는 필요하며 삭제하면 안 됩니다.

컨트롤을 두 번 클릭하여 문서에 Windows Forms 컨트롤을 추가하려면

  1. 문서가 디자이너에 표시되도록 Visual Studio에서 Excel 통합 문서 프로젝트 또는 Word 문서 프로젝트를 만들거나 엽니다. 프로젝트 만들기에 대한 내용은 방법: Visual Studio에서 Office 프로젝트 만들기를 참조하세요.

  2. 도구 상자공용 컨트롤 탭에서 추가할 컨트롤을 두 번 클릭합니다.

    컨트롤의 문서 또는 활성 창의 가운데에 추가됩니다.

    참고 항목

    Excel에서 컨트롤을 선택하는 경우 수식 입력줄=EMBED("WinForms.Control.Host","")가 표시됩니다. 이 텍스트는 필요하며 삭제하면 안 됩니다.

Enter 키를 눌러 문서에 Windows Forms 컨트롤을 추가하려면

  1. 문서가 디자이너에 표시되도록 Visual Studio에서 Excel 통합 문서 프로젝트 또는 Word 문서 프로젝트를 만들거나 엽니다. 프로젝트 만들기에 대한 내용은 방법: Visual Studio에서 Office 프로젝트 만들기를 참조하세요.

  2. 도구 상자공용 컨트롤 탭에서 추가할 컨트롤을 클릭하고 Enter 키를 누릅니다.

    컨트롤의 문서 또는 활성 창의 가운데에 추가됩니다.

    참고 항목

    Excel에서 컨트롤을 선택하는 경우 수식 입력줄=EMBED("WinForms.Control.Host","")가 표시됩니다. 이 텍스트는 필요하며 삭제하면 안 됩니다.

런타임에 문서 수준 프로젝트에서 컨트롤 추가

런타임에 문서에 Windows Forms 컨트롤을 프로그래밍 방식으로 추가할 수 있습니다. Word에서 ThisDocument 클래스의 Controls 속성 메서드를 사용합니다. Excel에서 Sheetn 클래스의 Controls 속성 메서드를 사용합니다. 각 메서드에는 다양한 방법으로 컨트롤의 위치를 지정할 수 있는 여러 오버로드가 있습니다.

런타임에 문서에 Windows Forms 컨트롤을 추가하면 문서를 닫을 때 컨트롤이 문서에 유지되지 않습니다. 다음에 문서를 열 때 컨트롤을 다시 만들 수 있습니다. 자세한 내용은 런타임 시 Office 문서에 컨트롤 추가를 참조하세요.

런타임에 Windows Forms 컨트롤을 추가하려면

  1. 이름이 Add<control class>인 메서드를 사용합니다. 여기서 control class는 추가할 Windows Forms 컨트롤의 클래스 이름(예: AddButton)입니다.

    다음 코드 예제에서는 Excel용 문서 수준 프로젝트에서 Sheet1C5 셀에 Button을 추가하는 방법을 보여 줍니다.

    private void Sheet1_Startup(object sender, System.EventArgs e)
    {
        Microsoft.Office.Tools.Excel.Controls.Button salesButton;
        salesButton = this.Controls.AddButton(this.get_Range("C5"), "salesButton");
        salesButton.Text = "Calculate Total Sales";
    }
    

런타임에 VSTO 추가 기능에서 컨트롤 추가

런타임에 열려있는 모든 문서에 Windows Forms 컨트롤을 프로그래밍 방식으로 추가할 수 있습니다. 먼저, 열려 있는 문서 또는 워크시트의 기반이 되는 호스트 항목을 생성합니다. 그런 다음 Word에서 새 호스트 항목의 Controls 속성 메서드를 사용합니다. Excel에서 새 호스트 항목의 Controls 속성 메서드를 사용합니다. 각 메서드에는 다양한 방법으로 컨트롤의 위치를 지정할 수 있는 여러 오버로드가 있습니다.

런타임에 문서에 Windows Forms 컨트롤을 추가하면 문서를 닫을 때 컨트롤이 문서에 유지되지 않습니다. 다음에 문서를 열 때 컨트롤을 다시 만들 수 있습니다. 자세한 내용은 런타임 시 Office 문서에 컨트롤 추가를 참조하세요.

VSTO 추가 기능 프로젝트에서 호스트 항목을 생성하는 방법에 대한 자세한 내용은 VSTO 추가 기능에서 런타임 시 Word 문서 및 Excel 통합 문서 확장을 참조하세요.

런타임에 Windows Forms 컨트롤을 추가하려면

  1. 이름이 Add<control class>인 메서드를 사용합니다. 여기서 control class는 추가할 Windows Forms 컨트롤의 클래스 이름(예: AddButton)입니다.

    참고 항목

    .NET Framework 4 이상을 대상으로 하는 VSTO 추가 기능 프로젝트에서 Add<control class> 메서드에 액세스하려면 먼저 Microsoft.Office.Tools.Excel.v4.0.Utilities.dll 또는 Microsoft.Office.Tools.Word.v4.0.Utilities.dll 어셈블리에 대한 참조를 추가해야 합니다.

    다음 코드 예제에서는 Word VSTO 추가 기능을 사용하여 활성 문서의 첫 번째 단락에 Button을 추가하는 방법을 보여 줍니다.

    Microsoft.Office.Tools.Word.Controls.Button salesButton;
    
    Document extendedDocument = Globals.Factory.GetVstoObject(this.Application.ActiveDocument);
    
    
    extendedDocument.Paragraphs[1].Range.InsertParagraphBefore();
    salesButton = extendedDocument.Controls.AddButton(
        extendedDocument.Paragraphs[1].Range, 75, 18, "salesButton");
    salesButton.Text = "Calculate Sales";