엑셀VBA/VBA 기본

VBA를 활용한 엑셀 차트 만들기

엑셀턴트 2025. 2. 3. 12:00

VBA를 활용한 엑셀 차트 만들기

엑셀에서 데이터를 시각적으로 표현하는 가장 효과적인 방법 중 하나는 차트를 활용하는 것입니다. VBA(Visual Basic for Applications)를 사용하면 반복적인 작업을 자동화하고, 동적인 차트를 생성할 수 있습니다. 이번 포스트에서는 VBA를 활용하여 차트를 생성하고 수정하는 기본적인 방법을 살펴보겠습니다.

1. 기본적인 차트 생성

VBA를 활용하여 차트를 만들려면 다음 단계를 따릅니다:

  1. 데이터를 준비한다.
  2. 차트를 삽입한다.
  3. 차트 유형을 설정한다.
  4. 차트 제목 및 축 레이블을 추가한다.

예제 코드: 기본 차트 생성

다음 VBA 코드는 선택한 범위의 데이터를 이용해 차트를 생성하는 방법을 보여줍니다

 

Sub CreateChart()
    Dim ws As Worksheet ' 현재 작업할 시트를 저장할 변수 선언
    Dim chartObj As ChartObject ' 차트 개체를 저장할 변수 선언
    
    Set ws = ThisWorkbook.Sheets("Sheet1") ' 현재 워크북에서 "Sheet1"을 선택
    
    ' 차트 삽입 (차트의 위치 및 크기 설정)
    Set chartObj = ws.ChartObjects.Add(Left:=100, Width:=300, Top:=50, Height:=200)
    
    With chartObj.Chart
        .SetSourceData Source:=ws.Range("A1:B5") ' 차트에 적용할 데이터 범위 설정
        .ChartType = xlColumnClustered ' 차트 유형을 묶은 세로 막대형으로 설정
        .HasTitle = True ' 차트 제목 활성화
        .ChartTitle.Text = "매출 데이터" ' 차트 제목 설정
        .Axes(xlCategory).HasTitle = True ' 가로축 제목 활성화
        .Axes(xlCategory).AxisTitle.Text = "월" ' 가로축 제목 설정
        .Axes(xlValue).HasTitle = True ' 세로축 제목 활성화
        .Axes(xlValue).AxisTitle.Text = "매출(단위: 만원)" ' 세로축 제목 설정
    End With
End Sub

 

위 코드를 실행하면 "Sheet1" 시트에 차트가 삽입되며, 범위(A1:B5)의 데이터를 이용해 막대형 차트가 생성됩니다.

2. 차트 유형 변경하기

VBA를 사용하면 다양한 차트 유형을 적용할 수 있습니다. 아래 코드에서 .ChartType 속성을 변경하면 다른 차트 유형으로 쉽게 전환할 수 있습니다.

With chartObj.Chart
    .ChartType = xlLine ' 차트 유형을 선형 차트로 변경
End With

 

다른 차트 유형:

  • xlColumnClustered : 묶은 세로 막대형 차트
  • xlLine : 선형 차트
  • xlPie : 원형 차트
  • xlBarClustered : 가로 막대형 차트

3. 동적으로 데이터 범위 변경하기

아래 코드는 기존 차트의 데이터 범위를 변경하는 방법을 보여줍니다.

Sub UpdateChartData()
    Dim ws As Worksheet ' 현재 작업할 시트를 저장할 변수 선언
    Dim chartObj As ChartObject ' 차트 개체를 저장할 변수 선언
    
    Set ws = ThisWorkbook.Sheets("Sheet1") ' "Sheet1"을 선택
    Set chartObj = ws.ChartObjects(1) ' 첫 번째 차트 개체를 선택
    
    chartObj.Chart.SetSourceData Source:=ws.Range("A1:C10") ' 차트의 데이터 범위를 A1:C10으로 변경
End Sub

 

4. 차트 서식 설정

다음 코드를 사용하면 차트의 색상을 변경할 수 있습니다.

With chartObj.Chart.SeriesCollection(1) ' 첫 번째 데이터 시리즈 선택
    .Format.Fill.ForeColor.RGB = RGB(255, 0, 0) ' 채우기 색상을 빨간색으로 변경
End With

 

마무리

이번 포스트에서는 VBA를 활용하여 기본적인 차트를 생성하고, 차트 유형을 변경하며, 데이터 범위를 동적으로 설정하는 방법을 살펴보았습니다. VBA를 활용하면 반복적인 작업을 자동화할 수 있어 업무 효율성을 크게 향상시킬 수 있습니다.

추후에는 사용자 입력을 받아 차트를 생성하는 방법과 차트 애니메이션 적용 방법 등을 다룰 예정입니다. VBA를 활용하여 더욱 효율적인 엑셀 자동화 작업을 진행해보세요!