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
위의 코드는 엑셀 차트를 생성하는 간단한 예시입니다. 코드를 한 줄씩 살펴보면 다음과 같습니다.
- 첫번째 줄에서는
CreateChart서브루틴을 정의합니다. Dim으로chart1이라는 차트 객체를 만듭니다.Set으로chart1에 엑셀 차트를 추가합니다.chart1의 Y축 눈금 레이블을 퍼센트 형태로 지정합니다.SetSourceData로 차트에서 사용할 데이터 범위를 설정합니다.SetElement로 범례를 제거합니다.
2. 차트의 유형 변경하기
Sub ChangeChartType()
ActiveSheet.Shapes("Chart 1").Chart.ChartType = xlLine
End Sub
위의 코드는 차트의 유형을 변경하는 예시입니다. 코드를 한 줄씩 살펴보면 다음과 같습니다.
- 첫번째 줄에서는
ChangeChartType서브루틴을 정의합니다. ActiveSheet.Shapes("Chart 1").Chart로"Chart 1"이라는 이름의 차트 객체를 가져옵니다.ChartType속성을 이용하여 차트의 유형을 변경합니다.
3. 차트의 제목 변경하기
Sub ChangeChartTitle()
With ActiveSheet.ChartObjects("Chart 1").Chart
.HasTitle = True
.ChartTitle.Text = "새로운 차트 제목"
End With
End Sub
위의 코드는 차트의 제목을 변경하는 예시입니다. 코드를 한 줄씩 살펴보면 다음과 같습니다.
- 첫번째 줄에서는
ChangeChartTitle서브루틴을 정의합니다. With구문을 이용하여 차트 객체를 가져옵니다.HasTitle속성을True로 설정하여 제목이 있는지 확인합니다.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
위의 코드는 차트의 축 레이블을 변경하는 예시입니다. 코드를 한 줄씩 살펴보면 다음과 같습니다.
- 첫번째 줄에서는
ChangeAxisLabel서브루틴을 정의합니다. With구문을 이용하여 카테고리(X)축 레이블을 가져옵니다.HasTitle속성을True로 설정하여 레이블이 있는지 확인합니다.AxisTitle.Text속성을 이용하여 레이블을 변경합니다.- 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
위의 코드는 차트의 데이터 레이블을 표시하는 예시입니다. 코드를 한 줄씩 살펴보면 다음과 같습니다.
- 첫번째 줄에서는
ShowDataLabels서브루틴을 정의합니다. For Each구문을 이용하여 차트의 시리즈 객체를 가져옵니다.HasDataLabels속성을True로 설정하여 데이터 레이블을 표시합니다.ShowValue속성을True로 설정하여 값이 표시되도록 합니다.
6. 마치며
이상으로 VBA 코드를 활용하여 엑셀 차트를 생성하고 수정하는 방법에 대해 알아보았습니다. VBA 코드를 사용하면 다양한 형태의 차트를 더욱 쉽고 빠르게 만들 수 있습니다. 더 많은 VBA 코드를 익혀서 보다 효율적인 엑셀 작업을 해보시길 바랍니다.
포스팅이 도움이 되셨다면 구독, 공감, 댓글 부탁드려요!
행복한 하루 되세요!
'■ 칼퇴를 위한 VBA : 사례 > - VBA for 엑셀' 카테고리의 다른 글
| VBA 스크립트를 활용한 엑셀 함수 사용 방법 (0) | 2023.06.23 |
|---|---|
| 엑셀 VBA로 데이터 입력 자동화하기 (0) | 2023.06.23 |
| 엑셀 VBA를 사용하여 데이터 정렬하는 방법 (0) | 2023.06.23 |
| VBA 스크립트를 활용한 엑셀 셀 서식 지정 방법 (0) | 2023.06.23 |
| 엑셀 VBA를 이용한 워크시트 병합 방법 (0) | 2023.06.23 |