본문 바로가기
■ 칼퇴를 위한 VBA : 사례/- VBA for 엑셀

VBA 코드를 활용한 엑셀 차트 생성 방법

by 포탈메이커 2023. 6. 23.

VBA 코드를 활용한 엑셀 차트 생성 방법

엑셀을 사용하다 보면 자신이 원하는 형태의 차트를 찾기 힘들 때가 있습니다. 이때, VBA 코드를 활용하면 자신이 원하는 형태의 차트를 쉽고 빠르게 만들 수 있습니다.

이번 포스팅에서는 VBA 코드를 사용하여 엑셀 차트를 만드는 방법에 대해 알아보도록 하겠습니다.

 

칼퇴키트, 업무용 도구모음

칼퇴를 위해 꼭 필요한 도구 모음을 제공합니다. 당장의 업무에 필요한 순간 사용하는 가벼운 메모장, 계산기, 변환기 등

portalmaker.backtohome.kr

 

1. 엑셀 차트 생성하기

Sub CreateChart()
    Dim chart1 As Chart
    Set chart1 = ActiveSheet.Shapes.AddChart2(297, xlColumnClustered).Chart
    
    chart1.Axes(xlValue).TickLabels.NumberFormat = "0.0%"
    chart1.SetSourceData Range("A2:B6")
    chart1.SetElement (msoElementLegendNone)
End Sub

위의 코드는 엑셀 차트를 생성하는 간단한 예시입니다. 코드를 한 줄씩 살펴보면 다음과 같습니다.

  1. 첫번째 줄에서는 CreateChart 서브루틴을 정의합니다.
  2. Dim으로 chart1이라는 차트 객체를 만듭니다.
  3. Set으로 chart1에 엑셀 차트를 추가합니다.
  4. chart1의 Y축 눈금 레이블을 퍼센트 형태로 지정합니다.
  5. SetSourceData로 차트에서 사용할 데이터 범위를 설정합니다.
  6. SetElement로 범례를 제거합니다.


2. 차트의 유형 변경하기

Sub ChangeChartType()
    ActiveSheet.Shapes("Chart 1").Chart.ChartType = xlLine
End Sub

위의 코드는 차트의 유형을 변경하는 예시입니다. 코드를 한 줄씩 살펴보면 다음과 같습니다.

  1. 첫번째 줄에서는 ChangeChartType 서브루틴을 정의합니다.
  2. ActiveSheet.Shapes("Chart 1").Chart"Chart 1"이라는 이름의 차트 객체를 가져옵니다.
  3. ChartType 속성을 이용하여 차트의 유형을 변경합니다.


3. 차트의 제목 변경하기

Sub ChangeChartTitle()
    With ActiveSheet.ChartObjects("Chart 1").Chart
        .HasTitle = True
        .ChartTitle.Text = "새로운 차트 제목"
    End With
End Sub

위의 코드는 차트의 제목을 변경하는 예시입니다. 코드를 한 줄씩 살펴보면 다음과 같습니다.

  1. 첫번째 줄에서는 ChangeChartTitle 서브루틴을 정의합니다.
  2. With 구문을 이용하여 차트 객체를 가져옵니다.
  3. HasTitle 속성을 True로 설정하여 제목이 있는지 확인합니다.
  4. ChartTitle.Text 속성을 이용하여 제목을 변경합니다.


4. 차트의 축 레이블 변경하기

Sub ChangeAxisLabel()
    With ActiveSheet.ChartObjects("Chart 1").Chart.Axes(xlCategory)
        .HasTitle = True
        .AxisTitle.Text = "새로운 범주 축 레이블"
    End With
    
    With ActiveSheet.ChartObjects("Chart 1").Chart.Axes(xlValue)
        .HasTitle = True
        .AxisTitle.Text = "새로운 값 축 레이블"
    End With
End Sub

위의 코드는 차트의 축 레이블을 변경하는 예시입니다. 코드를 한 줄씩 살펴보면 다음과 같습니다.

  1. 첫번째 줄에서는 ChangeAxisLabel 서브루틴을 정의합니다.
  2. With 구문을 이용하여 카테고리(X)축 레이블을 가져옵니다.
  3. HasTitle 속성을 True로 설정하여 레이블이 있는지 확인합니다.
  4. AxisTitle.Text 속성을 이용하여 레이블을 변경합니다.
  5. 4 과정을 값(Y)축 레이블에도 동일하게 적용합니다.


5. 차트의 데이터 레이블 표시하기

Sub ShowDataLabels()
    Dim srs As Series
    For Each srs In ActiveSheet.ChartObjects("Chart 1").Chart.SeriesCollection
        srs.HasDataLabels = True
        srs.DataLabels.ShowValue = True
    Next srs
End Sub

위의 코드는 차트의 데이터 레이블을 표시하는 예시입니다. 코드를 한 줄씩 살펴보면 다음과 같습니다.

  1. 첫번째 줄에서는 ShowDataLabels 서브루틴을 정의합니다.
  2. For Each 구문을 이용하여 차트의 시리즈 객체를 가져옵니다.
  3. HasDataLabels 속성을 True로 설정하여 데이터 레이블을 표시합니다.
  4. ShowValue 속성을 True로 설정하여 값이 표시되도록 합니다.


6. 마치며

이상으로 VBA 코드를 활용하여 엑셀 차트를 생성하고 수정하는 방법에 대해 알아보았습니다. VBA 코드를 사용하면 다양한 형태의 차트를 더욱 쉽고 빠르게 만들 수 있습니다. 더 많은 VBA 코드를 익혀서 보다 효율적인 엑셀 작업을 해보시길 바랍니다.



포스팅이 도움이 되셨다면 구독, 공감, 댓글 부탁드려요!

행복한 하루 되세요!