매크로를 사용하여 XY 분산형 차트 또는 Excel의 거품형 차트의 데이터 요소에 레이블을 추가하는 방법

적용 대상
Excel 2010

요약​​

Microsoft Excel에는 xy(분산형) 또는 거품형 차트의 데이터 요소에 텍스트 레이블을 자동으로 연결하는 기본 제공 명령이 없습니다. 그러나 이 작업을 수행하는 Microsoft Visual Basic for Applications 매크로를 만들 수 있습니다. 이 문서에는 XY 분산형 차트에서 이 작업을 수행하는 샘플 매크로가 포함되어 있습니다. 그러나 거품형 차트에도 동일한 코드를 사용할 수 있습니다.

추가 정보

Microsoft는 명시적이거나 묵시적인 보증 없이 설명용으로만 프로그래밍 예제를 제공합니다. 여기에는 상품성 또는 특정 목적에의 적합성에 대한 묵시적 보증이 포함되지만 이에 국한되지 않습니다. 이 문서에서는 설명 중인 프로그래밍 언어와 프로시저를 만들고 디버깅하는 데 사용되는 도구에 대해 잘 알고 있다고 가정합니다. Microsoft 지원 엔지니어는 특정 절차의 기능을 설명하는 데 도움을 줄 수 있습니다. 그러나 추가 기능을 제공하거나 특정 요구 사항을 충족하는 절차를 구성하기 위해 이러한 예제를 수정하지는 않습니다. 이 문서의 샘플 코드에서는 데이터 및 연결된 레이블이 다음 형식에 따라 워크시트에 정렬되어 있다고 가정합니다.

  • 첫 번째 열에는 데이터 레이블이 포함되어 있습니다.
  • 두 번째 열에는 분산형 차트의 x 값이 들어 있습니다.
  • 세 번째 및 후속 열에는 분산형 차트의 y 값이 포함됩니다.

참고: 제공된 예제에는 y 값에 대한 데이터 열이 하나만 포함되어 있지만 둘 이상의 데이터 계열을 사용할 수 있습니다.

이 문서의 매크로를 사용하려면 다음 데이터를 사용하여 차트를 만듭니다.

A1: 레이블 B1: X 값 C1: Y 값 A2: DataPoint1 B2: 12 C2: 5 A3: DataPoint2 B3: 9 C3: 7 A4: DataPoint3 B4: 5 C4: 3 A5: DataPoint4 B5: 4 C5: 8 A6: DataPoint5 B6: 1 C6: 4 참고: 테이블에는 빈 열이 있으면 안 되며, 데이터 레이블이 포함된 열은 x 값이 포함된 열과 분리되어서는 안 됩니다. 레이블과 값은 이 문서에서 설명하는 형식으로 정확하게 배치되어야 합니다. 왼쪽 위 셀은 셀 A1일 필요는 없습니다.

분산형 차트의 데이터 요소에 텍스트 레이블을 첨부하려면 다음 단계를 따릅니다.

  1. 예제 데이터가 포함된 워크시트에서 셀 범위 B1:C6을 선택합니다.

  2. Microsoft Office Excel 2003 및 이전 버전의 Excel에서는 다음 단계를 따릅니다.

    1. 삽입 메뉴에서 차트를 클릭합니다.
    2. 차트 마법사 - 4/4단계 - 차트 종류 대화 상자에서 Standard 형식 탭을 클릭합니다. 차트 유형에서 XY(분산형)를 클릭한 후 다음을 클릭합니다.
    3. 차트 마법사 - 4단계 중 2단계 - 차트 원본 데이터 대화 상자에서 데이터 범위 탭을 클릭합니다. 계열 위치에서 열을 클릭한 후 다음을 클릭합니다.
    4. 차트 마법사 - 4단계 중 3단계 - 차트 옵션 대화 상자에서 다음을 클릭합니다.
    5. 차트 마법사 - 4/4단계 - 차트 위치 대화 상자에서 새 시트로 옵션을 클릭한 다음 마침을 클릭합니다.

    Microsoft Office Excel 2007에서는 다음 단계를 따릅니다.

    1. 삽입 탭을 클릭하고 차트 그룹에서 분산형을 클릭한 다음 형식을 선택합니다.
    2. 디자인 탭의 위치 그룹에서 차트 이동을 클릭하고 새 시트를 클릭한 다음 확인을 클릭합니다.
  3. Alt+F11을 눌러 Visual Basic Editor를 시작합니다.

  4. [삽입] 메뉴에서 [모듈]을 클릭합니다.

  5. 모듈 시트에 다음 샘플 코드를 입력합니다.

    Sub AttachLabelsToPoints()
    
       'Dimension variables.
       Dim Counter As Integer, ChartName As String, xVals As String
    
       ' Disable screen updating while the subroutine is run.
       Application.ScreenUpdating = False
    
       'Store the formula for the first series in "xVals".
       xVals = ActiveChart.SeriesCollection(1).Formula
    
       'Extract the range for the data from xVals.
       xVals = Mid(xVals, InStr(InStr(xVals, ","), xVals, _
          Mid(Left(xVals, InStr(xVals, "!") - 1), 9)))
       xVals = Left(xVals, InStr(InStr(xVals, "!"), xVals, ",") - 1)
       Do While Left(xVals, 1) = ","
          xVals = Mid(xVals, 2)
       Loop
    
       'Attach a label to each data point in the chart.
       For Counter = 1 To Range(xVals).Cells.Count
         ActiveChart.SeriesCollection(1).Points(Counter).HasDataLabel = _
             True
          ActiveChart.SeriesCollection(1).Points(Counter).DataLabel.Text = _
             Range(xVals).Cells(Counter, 1).Offset(0, -1).Value
       Next Counter
    
    End Sub
    
  6. Alt+Q를 눌러 Excel로 돌아갑니다.

  7. 차트 시트로 전환합니다.

  8. Excel 2003 및 이전 버전의 Excel에서는 [도구] 메뉴에서 [매크로]를 가리킨 다음 [매크로]를 클릭합니다. AttachLabelsToPoints를 클릭한 다음 실행을 클릭하여 매크로를 실행합니다.

    Excel 2007에서는 개발자 탭을 클릭하고 코드 그룹에서 매크로를 클릭하고 AttachLabelsToPoints를 선택한 다음 실행을 클릭합니다.

매크로는 A2:A6 셀의 레이블을 차트의 데이터 요소에 연결합니다.