728x90

뭐든 반복작업을 VBA로 진행하면 굉장히 편리해 집니다.

차트는 특히 요소가 많기 때문에 여러가지를 알아둬야 합니다.

VBA 자체도 차트에 관련해서 많은 명령어를 만들어 두었습니다.

그 중 가장 기본 요소를 알아보겠습니다.

 

320x100

 

 

1. VBA로 차트 추가하기

 

차트에 관련 된 것은 기본적으로 속성인 ChartObject 속성, ChartObjects 매서드와 Chart 인터페이스를 사용합니다.

속성이 너무 많아서 하나하나를 다 소개하기 보다는 어떻게 사용하는지 바로 예시를 들어보겠습니다.

 

메크로 사용 결과

 

 

 

2. 소스 설명하기

 

Sub Add_chart()

    Dim wb As Workbook
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1") ' 원하는 워크시트 선택
    

    ' 차트 데이터 입력
    Dim chartData As Range
    Set chartData = ws.Range("A1:B11") ' 차트에 사용할 범위

    ' 새로운 차트 생성
    Dim chart1 As ChartObject
    Set chart1 = ws.ChartObjects.Add(Left:=200, Width:=375, Top:=75, Height:=225)

    ' 차트 데이터 설정
    With chart1.chart
        .SetSourceData chartData
        .ChartType = xlColumnClustered ' 원하는 차트 유형 선택
    End With

    ' 차트 스타일 및 제목 설정
    With chart1
        .chart.HasTitle = True ' 차트 제목 활성화 하기
        .chart.ChartTitle.Text = "Sample Chart"
        
        ' 원하는 다른 스타일 설정
    End With

End Sub

 

Chart1이라는 이름의 ChartObject를 선언하고 ChartObjects.Add로 추가합니다.

이 순간에는 빈 차트가 만들어집니다.

그런 후에 chart 인터페이스를 통해서 chart의 설정을 합니다.

 

"워크시트 이름".ChartObjects.Add (double Left, double Top, double Width, double Height) : 워크 시트에 차트를 추가합니다.

  • Left : 추가되는 차트의 가로 위치입니다.
  • Tob : 추가되는 차트의 세로 위치입니다.
  • Width : 추가되는 차트의 너비입니다.
  • Height : 추가되는 차트의 너비입니다.

 

 

3. chart 종류 결정하기

 

엑셀은 차트 유형도 많습니다.

기본적인 차트 유형들만 소개하겠습니다.

 

"차트이름".Chart.chartType = "차트 유형"

 

  • xlColumnClustered (51) : 2차원 묶은 세로 막대형
  • xlColumnStacked (52) : 2차원 누적 세로 막대형
  • xlColumnStacked100 (53) : 2차원 100% 기준 누적 세로 막대형
  • xlBarClustered (57) : 2차원 묶은 가로 막대형
  • xlBarStacked (58) : 2차원 누적 가로 막대형
  • xlBarStacked100 (59) : 2차원 100% 기준 누적 가로 막대형
  • xlLine (4) : 꺽은 선형
  • xlLineMarkers (65) : 표식이 있는 꺽은 선형
  • xlLineMarkersStacked (66) : 표식이 있는 누적형 꺽은 선형
  • xlLineMarkersStacked100 (67) : 표식이 있는 100% 기준 누적형 꺽은 선형
  • xlLineStacked (63) : 누적형 꺽은 선형
  • xlLineStacked100 (64) 100% 기준 누적형 꺽은 선형
  • xlXYScatter (-4169) : 분산형
  • xlXYScatterLines (74) : 꺽은 선형 분산형
  • xlXYScatterLinesNoMarkers (75) 표식이 없는 꺽은 선형 분산형
  • xlXYScatterSmooth (72) : 곡선이 있는 분산형
  • xlXYScatterSmoothNoMarkers (73) : 표식이 없는 곡선 분산형

 

 

 

 

 

반응형

+ Recent posts