엑셀 VBA 차트 매크로로 만드는 방법

엑셀(Excel)/VBA

엑셀 VBA 차트 매크로로 만드는 방법

 

환경: Microsoft Excel 2013

 

차트 생성이 가능한 매크로를 만들어 두면 여러 모로 편합니다. 만약 차트 포맷이 정해져 있고 반복적으로 차트를 만들어야 된다면 매크로를 이용해서 작업 시간을 줄여 보세요. 초보자는 차트의 세부 설정까지 매크로로 제어하기 힘들겠지만 한 두번씩 만들다 보면 코드를 이해하고 업그레이드할 수 있는 능력이 생길 겁니다.  

 

먼저 차트에 적용할 데이터를 만듭니다. 그리고 개발자 도구 탭을 눌러 매크로를 실행해서 자동으로 실행할 함수를 생성합니다.

엑셀 VBA 차트 매크로로 만드는 방법

 

아주 간단하게 차트를 만드는 소스는 아래와 같습니다. Shapes.AddChart() 함수를 이용하시면 바로 차트객체를 생성할 수 있습니다. 생성된 차트에 들어갈 데이터는 ActiveChart.SetSourceData 를 이용합니다. 여기에 차트 데이터를 넣으면 됩니다.


Sub ChartMake()

   

    Sheets("차트만들기").Shapes.AddChart.Select

   

    ActiveChart.SetSourceData Source:=Sheets("차트만들기").Range("A2:F7")

   

End Sub

 

매크로를 실행하면 아래 그림과 같이 차트가 자동으로 들어갑니다. 열 항목도 범례에 제대로 들어갔네요. 다음은 추가한 차트를 워크시트 어느 위치에 고정할 지 결정하는  방법을 알아 봅니다

엑셀 VBA 차트 매크로로 만드는 방법

 


원래 AddChart 함수의 원형은 다음과 같습니다. 4가지 파라미터를 가지고 있습니다. 인수로 넘어가는 값으로 차트의 타입, 차트의 왼쪽 상단 꼭지점이 위치할 곳, 차트의 넓이와 높이를 지정할 수 있습니다

엑셀 VBA 차트 매크로로 만드는 방법

 

특정 위치에 차트를 만들어서 고정시키고 싶으면 두 번째, 세 번째 인수의 값을 넘깁니다. 두 값은 워크시트의 왼쪽으로부터 거리와 상단에서 높이 값입니다. 아래 소스를 적용한 결과 화면을 보시면 쉽게 이해가 가실 겁니다.


Sub ChartMake()

   

    Sheets("차트만들기").Shapes.AddChart(xlColumnClustered, 10, 150, 300, 100).Select

   

    ActiveChart.SetSourceData Source:=Sheets("차트만들기").Range("A2:F7")

   

End Sub

엑셀 VBA 차트 매크로로 만드는 방법

 

다음은 차트 종류를 지정하는 방법입니다. AddChart 함수 중 첫 번째 인수는 차트의 종류 입니다. 차트는 그 종류가 많고 상수로 정의했기 때문에 일일이 다 외울 수가 없습니다. 사용할 때 마다 마이크로소프트 MSDN 에서 찾아 봐야 합니다. 링크 주소는 아래와 같습니다. 아래 값에 Member name 의 상수 값에 따라 차트의 종류를 지정할 수 있습니다. 어떤 모양인지는 하나씩 찍어 볼 수 밖에 없습니다.

https://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.xlcharttype.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1

엑셀 VBA 차트 매크로로 만드는 방법


Posted by 녹두장군

댓글을 달아 주세요

  1. 호동이 2018.12.31 11:09  댓글주소  수정/삭제  댓글쓰기

    안녕하세요 녹두장군님.
    항상 유익한 자료들 감사드립니다.

    다름이 아니라, 혼자 몇시간동안 시도해보다가 도저히 안되서 염치없지만 질문글 올립니다..

    Sub ChartMake()

    Sheets("sheet1").Shapes.AddChart(xlXYScatter, 300, 150, 350, 180).Select

    ActiveChart.SetSourceData Source:=Sheets("sheet2").Range("E3:F255")

    제가 지금 하고 있는 작업이, 시트 2에 있는 자료를 바탕으로, 시트 1에 그래프를 만들고 있는데요.

    1. x축의 값과 y축의 값을 제가 직접 고를 수 있는 방법은 없을까요? x축에는 f3;f255까지 y축에는 e3;e255까지.

    2. 그래프가 뜰 때, 추세선 (선형)과, 수식, r제곱값 이 함께 뜨게하고 싶은데, 어떤식으로 데이터를 입력해야 하는지 전혀 모르겠습니다..ㅠㅠ

    다시한번 염치없는 문의글 죄송합니다..

  2. 호동이 2018.12.31 21:28  댓글주소  수정/삭제  댓글쓰기

    안녕하세요 결국에는 성공 한 것 같습니다..여튼 녹두장군님 글들을 통해 vba를 잘 배웠습니다.
    다시한번 감사드립니다.