다음을 통해 공유


연습: 워크시트에서 라디오 단추를 사용하여 차트 업데이트

이 연습에서는 Microsoft Office Excel 워크시트에서 라디오 단추를 사용하여 옵션 간에 빠르게 전환할 수 있는 방법을 제공하는 기본 사항을 보여 줍니다. 이 경우 옵션은 차트의 스타일을 변경합니다.

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

결과를 완성된 샘플로 확인하려면 Office 개발 샘플 및 연습의 Excel 컨트롤 샘플을 참조하세요.

이 연습에서는 다음 작업을 수행합니다.

  • 워크시트에 라디오 단추 그룹 추가

  • 옵션을 선택할 때 차트 스타일을 변경합니다.

참고 항목

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

필수 조건

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

워크시트에 차트 추가

기존 통합 문서를 사용자 지정하는 Excel 통합 문서 프로젝트를 만들 수 있습니다. 이 연습에서는 통합 문서에 차트를 추가한 다음, 새 Excel 솔루션에서 이 통합 문서를 사용합니다. 이 연습의 데이터 원본은 차트용 데이터라는 워크시트입니다.

데이터를 추가하려면

  1. Microsoft Excel을 엽니다.

  2. Sheet3 탭을 마우스 오른쪽 단추로 클릭한 다음, 바로가기 메뉴에서 이름 바꾸기를 클릭합니다.

  3. 시트 이름을 차트용 데이터로 바꿉니다.

  4. 왼쪽 상단에 셀 A4가 있고 오른쪽 하단에 E8이 있는 차트용 데이터에 다음 데이터를 추가합니다.

    지역/분기 Q1 Q2 Q3 Q4
    West 500 550 550 600
    동부 600 625 675 700
    North 450 470 490 510
    남부 800 750 775 790

    다음으로, 첫 번째 워크시트에 차트를 추가하여 데이터를 표시합니다.

Excel에서 차트를 추가하려면

  1. 삽입 탭의 차트 그룹에서 을 클릭한 다음, 모든 차트 종류를 클릭합니다.

  2. 차트 삽입 대화 상자에서 을 클릭합니다.

  3. 디자인 탭의 데이터 그룹에서 데이터 선택을 클릭합니다.

  4. 데이터 원본 선택 대화 상자에서 차트 데이터 범위 상자를 클릭하고 기본 선택 내용을 지웁니다.

  5. 차트용 데이터 시트에서 왼쪽 상단의 A4부터 오른쪽 하단의 E8까지 포함하는 숫자가 포함된 셀 블록을 선택합니다.

  6. 데이터 원본 선택 대화 상자에서 확인을 클릭합니다.

  7. 오른쪽 상단이 E2 셀과 맞춰지도록 차트의 위치를 조정합니다.

  8. 파일을 C 드라이브에 저장하고 이름을 ExcelChart.xlsx로 지정합니다.

  9. Excel을 종료합니다.

새 프로젝트 만들기

이 단계에서는 ExcelChart 통합 문서를 기반으로 Excel 통합 문서 프로젝트를 만듭니다.

새 프로젝트를 만들려면

  1. My Excel Chart라는 이름으로 Excel 통합 문서 프로젝트를 만듭니다. 마법사에서 기존 문서 복사를 선택합니다.

    자세한 내용은 방법: Visual Studio에서 Office 프로젝트 만들기를 참조하세요.

  2. 찾아보기 단추를 클릭하고 이 연습의 앞부분에서 만든 통합 문서를 찾습니다.

  3. 확인을 클릭합니다.

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

차트의 속성 설정

기존 통합 문서를 사용하는 새 Excel 통합 문서 프로젝트를 만들면 통합 문서의 모든 명명된 범위, 목록 개체 및 차트에 대해 호스트 컨트롤이 자동으로 만들어집니다. 속성 창을 사용하여 Chart 컨트롤의 이름을 변경할 수 있습니다.

차트 컨트롤의 이름을 변경하려면

  1. 디자이너에서 Chart 컨트롤을 선택하고 속성 창에서 다음 속성을 변경합니다.

    속성
    이름 dataChart
    HasLegend false

컨트롤 추가

이 워크시트는 라디오 단추를 사용하여 사용자에게 차트 스타일을 빠르게 변경할 수 있는 방법을 제공합니다. 그러나 라디오 단추는 배타적이어야 합니다. 하나의 단추가 선택되면 그룹의 다른 단추를 동시에 선택할 수 없습니다. 이 동작은 워크시트에 여러 라디오 단추를 추가할 때 기본적으로 발생하지 않습니다.

이 동작을 추가하는 한 가지 방법은 사용자 컨트롤의 라디오 단추를 그룹화하고 사용자 컨트롤 뒤에 코드를 작성한 다음, 워크시트에 사용자 컨트롤을 추가하는 것입니다.

사용자 컨트롤을 추가하려면

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

  2. 프로젝트 메뉴에서 새 항목 추가를 클릭합니다.

  3. 새 항목 추가 대화 상자에서 사용자 컨트롤을 클릭하고 컨트롤의 이름을 ChartOptions로 지정한 후 추가를 클릭합니다.

사용자 컨트롤에 라디오 단추를 추가하려면

  1. 사용자 컨트롤이 디자이너에 표시되지 않으면 솔루션 탐색기에서 ChartOptions를 두 번 클릭합니다.

  2. 도구 상자공용 컨트롤 탭에서 라디오 단추 컨트롤을 사용자 컨트롤로 끌어 온 후 다음 속성을 변경합니다.

    속성
    이름 columnChart
    Text 세로 막대형 차트
  3. 두 번째 라디오 단추를 사용자 컨트롤에 추가한 후 다음 속성을 변경합니다.

    속성
    이름 barChart
    Text 가로 막대형 차트
  4. 세 번째 라디오 단추를 사용자 컨트롤에 추가한 후 다음 속성을 변경합니다.

    속성
    이름 lineChart
    Text 꺾은선형 차트
  5. 네 번째 라디오 단추를 사용자 컨트롤에 추가한 후 다음 속성을 변경합니다.

    속성
    이름 areaBlockChart
    Text 영역 블록 차트

    다음으로, 라디오 단추를 클릭할 때 차트를 업데이트하는 코드를 작성합니다.

라디오 단추를 선택할 때 차트 스타일 변경

이제 코드를 추가하여 차트 스타일을 변경할 수 있습니다. 이 작업을 수행하려면 사용자 컨트롤에 대한 공용 이벤트를 만들고 선택 유형을 설정하는 속성을 추가한 다음 각 라디오 단추의 CheckedChanged 이벤트에 대해 이벤트 처리기를 만듭니다.

사용자 컨트롤에서 이벤트와 속성을 만들려면

  1. 솔루션 탐색기에서 사용자 컨트롤을 마우스 오른쪽 단추로 클릭한 다음 코드 보기를 클릭합니다.

  2. ChartOptions 클래스에 코드를 추가하여 SelectionChanged 이벤트 및 Selection 속성을 만듭니다.

    public event EventHandler SelectionChanged;
    
    private Microsoft.Office.Interop.Excel.XlChartType selectedType =
        Microsoft.Office.Interop.Excel.XlChartType.xlColumnClustered;
    
    public Microsoft.Office.Interop.Excel.XlChartType Selection
    {
        get
        {
            return this.selectedType;
        }
        set
        {
            this.selectedType = value;
        }
    }
    

라디오 단추의 CheckedChange 이벤트를 처리하려면

  1. CheckedChanged 라디오 단추의 areaBlockChart 이벤트 처리기에서 차트 종류를 설정한 다음 이벤트를 발생시킵니다.

    private void areaBlockChart_CheckedChanged(object sender, EventArgs e)
    {
        if (((RadioButton)sender).Checked)
        {
            this.selectedType = Microsoft.Office.Interop.Excel.XlChartType.xlAreaStacked;
            if (this.SelectionChanged != null)
            {
                this.SelectionChanged(this, EventArgs.Empty);
            }
        }
    }
    
  2. CheckedChanged 라디오 단추의 barChart 이벤트 처리기에서 차트 종류를 설정합니다.

    private void barChart_CheckedChanged(object sender, EventArgs e)
    {
        if (((RadioButton)sender).Checked)
        {
            this.selectedType = Microsoft.Office.Interop.Excel.XlChartType.xlBarClustered;
            if (this.SelectionChanged != null)
            {
                this.SelectionChanged(this, EventArgs.Empty);
            }
        }
    }
    
  3. CheckedChanged 라디오 단추의 columnChart 이벤트 처리기에서 차트 종류를 설정합니다.

    private void columnChart_CheckedChanged(object sender, EventArgs e)
    {
        if (((RadioButton)sender).Checked)
        {
            this.selectedType = Microsoft.Office.Interop.Excel.XlChartType.xlColumnClustered;
            if (this.SelectionChanged != null)
            {
                this.SelectionChanged(this, EventArgs.Empty);
            }
        }
    }
    
  4. CheckedChanged 라디오 단추의 lineChart 이벤트 처리기에서 차트 종류를 설정합니다.

    private void lineChart_CheckedChanged(object sender, EventArgs e)
    {
        if (((RadioButton)sender).Checked)
        {
            this.selectedType = Microsoft.Office.Interop.Excel.XlChartType.xlLineMarkers;
            if (this.SelectionChanged != null)
            {
                this.SelectionChanged(this, EventArgs.Empty);
            }
        }
    }
    
  5. C#에서는 라디오 단추에 대해 이벤트 처리기를 추가해야 합니다. ChartOptions 생성자의 InitializeComponent 호출 아래에 코드를 추가할 수 있습니다. 이벤트 처리기를 만드는 방법에 대한 내용은 방법: Office 프로젝트에서 이벤트 처리기 만들기를 참조하세요.

    public ChartOptions()
    {
        InitializeComponent();
    
        areaBlockChart.CheckedChanged += new EventHandler(areaBlockChart_CheckedChanged);
        barChart.CheckedChanged += new EventHandler(barChart_CheckedChanged);
        columnChart.CheckedChanged += new EventHandler(columnChart_CheckedChanged);
        lineChart.CheckedChanged += new EventHandler(lineChart_CheckedChanged);
    }
    

워크시트에 사용자 컨트롤 추가

솔루션을 빌드하면 새 사용자 컨트롤이 도구 상자에 자동으로 추가됩니다. 그러면 컨트롤을 도구 상자에서 워크시트로 끌어 올 수 있습니다.

워크시트에 사용자 컨트롤을 추가하려면

  1. 빌드 메뉴에서 솔루션 빌드를 클릭합니다.

    ChartOptions 사용자 컨트롤이 도구 상자에 추가됩니다.

  2. 솔루션 탐색기에서 Sheet1.vb 또는 Sheet1.cs를 마우스 오른쪽 단추로 클릭한 다음 뷰 디자이너를 클릭합니다.

  3. ChartOptions 컨트롤을 도구 상자에서 워크시트로 끕니다.

    my_Excel_Chart_ChartOptions1이라는 새 컨트롤을 프로젝트에 추가합니다.

  4. 컨트롤 이름을 ChartOptions1로 변경합니다.

차트 종류 변경

차트 종류를 변경하려면 사용자 컨트롤에서 선택한 옵션에 따라 스타일을 설정하는 이벤트 처리기를 만듭니다.

워크시트에 표시되는 차트 종류를 변경하려면

  1. Sheet1 클래스에 다음 이벤트 처리기를 추가합니다.

    private void ChartOptions1_SelectionChanged(object sender, EventArgs e)
    {
        try
        {
            dataChart.ChartType = this.ChartOptions1.Selection;
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }
    
  2. C#에서는 아래와 같이 사용자 컨트롤에 대한 이벤트 처리기를 Startup 이벤트에 추가해야 합니다. 이벤트 처리기를 만드는 방법에 대한 내용은 방법: Office 프로젝트에서 이벤트 처리기 만들기를 참조하세요.

    this.ChartOptions1.SelectionChanged += new EventHandler(ChartOptions1_SelectionChanged);
    

애플리케이션 테스트

이제 통합 문서를 테스트하여 라디오 단추를 선택할 때 차트의 스타일이 올바르게 지정되었는지 확인할 수 있습니다.

통합 문서를 테스트하려면

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

  2. 여러 라디오 단추를 선택합니다.

  3. 선택 항목과 일치하도록 차트 스타일이 변경되는지 확인합니다.

다음 단계

이 연습에서는 워크시트에서 라디오 단추 및 차트 스타일을 사용하는 기본 사항을 보여 줍니다. 다음으로 수행할 수 있는 몇 가지 작업은 다음과 같습니다.