다음을 통해 공유


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

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

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

이 연습에서는 Excel용 문서 수준 프로젝트를 사용하지만 연습에서 설명하는 개념을 다른 Office 프로젝트에 적용할 수 있습니다.

필수 조건

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

참고 항목

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

새 프로젝트 만들기

첫 번째 단계에서 Excel 통합 문서 프로젝트를 만듭니다.

새 프로젝트를 만들려면

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

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

워크시트에 NamedRange 컨트롤 추가

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

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

  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. OpenThisWorkbook이벤트 처리기에서 다음 코드를 추가하여 GetInputString 양식에 대한 변수를 선언한 다음 양식을 표시합니다.

    참고 항목

    C#에서는 아래 Startup 이벤트에 표시된 것처럼 이벤트 처리기를 추가해야 합니다. 이벤트 처리기를 만드는 방법에 대한 내용은 방법: Office 프로젝트에서 이벤트 처리기 만들기를 참조하세요.

    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.ShowDialog();
    }
    
  3. 명명된 범위에 텍스트를 쓰는 WriteStringToCell 이라는 메서드를 만듭니다. 이 메서드가 양식에서 호출되고 사용자의 입력이 NamedRange A1 formInput셀의 컨트롤인에 전달됩니다.

    public void WriteStringToCell(string formData)
    {
        Globals.Sheet1.formInput.Value2 = formData;
    }
    

    그런 다음 양식에 코드를 추가하여 단추의 클릭 이벤트를 처리합니다.

워크시트에 정보를 보내기

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

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

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

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

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

테스트

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

통합 문서를 테스트하려면

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

  2. Windows Form이 나타나는지 확인합니다.

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

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

다음 단계

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