연습: Windows Form을 사용하여 데이터 수집

이 연습에서는 Microsoft Office Excel용 문서 수준 사용자 지정을 통해 Windows Form을 열고 사용자의 정보를 수집하고 해당 정보를 워크시트 셀에 입력하는 방법을 보여 줍니다.

적용 대상: 이 항목의 정보는 Microsoft Office 2010 및 2007 Microsoft Office system의 문서 수준 프로젝트 및 응용 프로그램 수준 프로젝트에 적용됩니다. 자세한 내용은 Office 응용 프로그램 및 프로젝트 형식에 따라 사용 가능한 기능을 참조하십시오.

이 연습에서는 Excel용 문서 수준 프로젝트만 사용하지만 연습에서 보여 주는 기본 개념은 다른 Office 프로젝트에도 적용됩니다.

사전 요구 사항

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

-

Microsoft Office 개발자 도구를 포함하는 Visual Studio 2010 버전입니다. 자세한 내용은 [Office 솔루션을 개발할 수 있도록 컴퓨터 구성](bb398242\(v=vs.100\).md)을 참조하십시오.
  • Microsoft Office Excel 2007 또는 Excel 2010

참고

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

새 프로젝트 만들기

첫 번째 단계는 Excel 통합 문서 프로젝트 만들기입니다.

새 프로젝트를 만들려면

  • WinFormInput이라는 Excel 통합 문서 프로젝트를 만들고 마법사에서 새 문서 만들기를 선택합니다. 자세한 내용은 방법: Visual Studio에서 Office 프로젝트 만들기를 참조하십시오.

    Visual Studio의 디자이너에 새 Excel 통합 문서가 열리고 WinFormInput 프로젝트가 솔루션 탐색기에 추가됩니다.

워크시트에 NamedRange 컨트롤 추가

Sheet1에 명명된 범위를 추가하려면

  1. Sheet1에서 A1 셀을 선택합니다.

  2. 이름 상자에 formInput을 입력합니다.

    이름 상자는 수식 입력줄의 왼쪽에 워크시트의 A 열 바로 위에 있습니다.

  3. Enter 키를 누릅니다.

    NamedRange 컨트롤이 A1 셀에 추가됩니다. 워크시트에 시각적으로 표시되지는 않지만 A1 셀을 선택하면 formInput이 워크시트의 왼쪽 바로 위에 있는 이름 상자와 속성 창에 나타납니다.

프로젝트에 Windows Form 추가

사용자에게 정보를 표시하기 위한 Windows Form을 만듭니다.

Windows Form을 추가하려면

  1. 솔루션 탐색기에서 WinFormInput 프로젝트를 선택합니다.

  2. 프로젝트 메뉴에서 Windows Form 추가를 클릭합니다.

  3. 폼의 이름을 GetInputString.vb 또는 GetInputString.cs로 지정한 다음 추가를 클릭합니다.

    새 폼이 디자이너에서 열립니다.

  4. TextBoxButton을 폼에 추가합니다.

  5. 단추를 선택하고 속성 창에서 Text 속성을 찾은 다음 텍스트를 확인으로 변경합니다.

이제 사용자의 정보를 수집하기 위한 코드를 ThisWorkbook.vb 또는 ThisWorkbook.cs에 추가합니다.

Windows Form 표시 및 정보 수집

GetInputString Windows Form의 인스턴스를 만들어 표시한 다음 사용자의 정보를 워크시트의 셀에 기록합니다.

폼을 표시하고 정보를 수집하려면

  1. 솔루션 탐색기에서 ThisWorkbook.vb 또는 ThisWorkbook.cs를 마우스 오른쪽 단추로 클릭한 다음 코드 보기를 클릭합니다.

  2. ThisWorkbook의 Open 이벤트 처리기에서 아래 코드를 추가하여 GetInputString 폼의 변수를 선언한 다음 폼을 표시합니다.

    참고

    C#의 경우 아래 Startup 이벤트에 나와 있는 것과 같이 이벤트 처리기를 추가해야 합니다. 이벤트 처리기를 만드는 방법에 대한 자세한 내용은 방법: Office 프로젝트에서 이벤트 처리기 만들기를 참조하십시오.

    Private Sub ThisWorkbook_Open() Handles Me.Open
        Dim inputForm As New GetInputString()
        inputForm.Show()
    End Sub
    
    private void ThisWorkbook_Startup(object sender, System.EventArgs e)
    {
        this.Open += new 
            Microsoft.Office.Interop.Excel.WorkbookEvents_OpenEventHandler(ThisWorkbook_Open);
    }
    
    private void ThisWorkbook_Open()
    {
        GetInputString inputForm = new GetInputString();
        inputForm.Show();
    }
    
  3. 명명된 범위에 텍스트를 기록하는 WriteStringToCell이라는 메서드를 만듭니다. 이 메서드는 폼에서 호출되고 사용자가 입력한 내용은 A1 셀의 NamedRange 컨트롤인 formInput에 전달됩니다.

    Public Sub WriteStringToCell(ByVal formData As String)
        Globals.Sheet1.formInput.Value2 = formData
    End Sub
    
    public void WriteStringToCell(string formData)
    {
        Globals.Sheet1.formInput.Value2 = formData;
    }
    

그런 다음 단추의 클릭 이벤트를 처리하기 위한 코드를 폼에 추가합니다.

워크시트에 정보 보내기

워크시트에 정보를 보내려면

  1. 솔루션 탐색기에서 GetInputString을 마우스 오른쪽 단추로 클릭한 다음 디자이너 보기를 클릭합니다.

  2. 단추를 두 번 클릭하여 단추의 Click 이벤트 처리기가 추가된 코드 파일을 엽니다.

  3. 이벤트 처리기에 코드를 추가하여 텍스트 상자에서 입력을 가져와서 WriteStringToCell 함수로 보낸 다음 폼을 닫습니다.

    Globals.ThisWorkbook.WriteStringToCell(Me.TextBox1.Text)
    Me.Dispose()
    
    Globals.ThisWorkbook.WriteStringToCell(this.textBox1.Text);
    this.Dispose();
    

테스트

이제 프로젝트를 실행할 수 있습니다. Windows Form이 나타나고 입력한 내용이 워크시트에 표시됩니다.

통합 문서를 테스트하려면

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

  2. Windows Form이 표시되는지 확인합니다.

  3. 텍스트 상자에 Hello World를 입력하고 확인을 클릭합니다.

  4. 워크시트의 A1 셀에 Hello World가 표시되는지 확인합니다.

다음 단계

이 연습에서는 Windows Form을 표시하고 워크시트에 데이터를 전달하기 위한 기본 방법을 보여 줍니다. 다음과 같은 다른 작업을 수행할 수도 있습니다.

  • Excel 통합 문서 또는 Word 문서에서 Windows Forms 컨트롤을 사용합니다. 자세한 내용은 Office 문서의 Windows Forms 컨트롤 개요를 참조하십시오.

  • 문서 수준 사용자 지정 또는 응용 프로그램 수준 추가 기능에서 Microsoft Office 응용 프로그램의 사용자 인터페이스를 수정합니다. 자세한 내용은 Office UI 사용자 지정를 참조하십시오.

참고 항목

작업

방법: Windows Forms과 상호 작용

개념

Office 솔루션에서 코드 작성

Word를 사용한 연습

Excel을 사용한 연습

Office 솔루션 전역화 및 지역화

기타 리소스

Office 솔루션 개발

응용 프로그램 수준 추가 기능 프로그래밍

문서 수준 사용자 지정 프로그래밍