엑셀 정보

[엑셀 매크로/VBA] 차트 생성하기 / 차트 만들기

정보를공유합니다 2019. 11. 27. 23:05
반응형

안녕하세요.

 

 

엑셀 중에 가장 많이 사용하는 것이 그래프 혹은 차트를 만드는 것 일 겁니다.

저 또는 일을하다보면 차트를 가장 많이 사용합니다.

숫자만 보는 것보다 차트를 만들어서 시각적으로 보는 것이 더 편하기 때문입니다.

물론 보고서를 만들기 위해서도 그렇습니다.

일반적으로 차트를 만들기 위해서 메뉴의 삽입에서 차트를 추가합니다.

그런데 굳이 이것을 매크로, VBA로 복잡하게 만들 필요가 있을까요?

메뉴의 삽입에 있는 차트를 만드는 것은 마우스를 몇 번 움직이여야 하는 번거로움이 있습니다.

만약 루틴하게 반복적으로 동일한 차트를 만들어야 된다면 어떻게 하시겠습니까?

그 때에는 계속 마우스로 차트를 그리시겠습니까?

이 때에는 매크로를 이용하여 차트를 만드는 것이 효율적입니다.

자, 이제 시작해보겠습니다.

 

 

엑셀에 위 그림과 같이 예제 테이블을 하나 만들어 보도록 하겠습니다.

 

 

메뉴의 개발 도구에서 Visual Basic을 실행합니다.

만약 메뉴에 개발 도구가 안 보이신다면, 아래 블로그를 참고하시어 개발 도구를 보이게 하시면 됩니다.

 

https://shareinfomation.tistory.com/494

 

[엑셀 매크로/VBA] 엑셀에서 매크로/VBA 사용하기

안녕하세요. 엑셀을 이용해서 매크로/VBA를 이용하려면 우선적으로 해야될 작업이 있습니다. 엑셀을 설치하고 실행한 다음에 메뉴를 보면, 파일, 홈, 삽입, 페이지 레이아웃, 수식, 데이터, 검토, 보기, 추가 기..

shareinfomation.tistory.com

 

 

Microsoft Visual Basic for Applications에서 현재_통합_문서를 더블 클릭합니다.

오른쪽 창에 아래의 초록색 내용을 입력하시기 바랍니다.

 

 

 

Sub 프로시저()

    ActiveSheet.Shapes.AddChart
    
End Sub

 

 

 

 

그리고 F5를 눌러서 실행해보록 하겠습니다.

 

 

혹시 위 그림처럼 빈 차트가 생성되었나요?

그렇다면 현재 셀의 위치를 확인해 보셔야 합니다.

 

 

위 그림처럼 테이블 중에 한 셀이 선택되어야 합니다.

확인 하셨다면, 다시 F5를 눌러서 매크로를 실행해 봅니다.

 

 

위 그림처럼 차트가 생성되었나요?

 

만약에 항상 테이블이 같은 위치에 있다면, 즉 셀을 지정할 수 있다면 위와 같은 실수를 하지 않겠죠?

이런 실수를 하지 않기 위해서 아예 셀의 위치를 지정할 수 있습니다.

 

 

 

Sub 프로시저()

    ActiveSheet.Shapes.AddChart.Select
    
    ActiveChart.SetSourceData Source:=Range("A1").CurrentRegion
    
End Sub

 

 

 

 

A1 셀을 포함한 테이블의 차트를 그리라고 매크로에 추가하였습니다.

F5를 눌러서 실행해보겠습니다.

 

 

셀의 위치가 어디에 있든지 간에, A1 셀을 포함한 테이블에 대한 차트가 생성됩니다.

 

차트의 종류는 세로 막대형, 꺾은 선형, 원형, 가로 막대형, 영역형, 분산형 등 많이 있습니다.

지금까지 예제로 해 본것은 차트를 생성하는 것은 맞는데, 그냥 자동으로 차트를 생성한 것 입니다.

그러면 차트 종류를 어떻게 바꿀 수 있을까요?

 

 

 

Sub 프로시저()

 

    ActiveSheet.ChartObjects(1).Chart.ChartType = xlLineMarkers

 

End Sub

 

 

 

위 내용 중에서 xlLineMarkers를 다른 것으로 바꾸시면 됩니다.

 

묶은 세로 막대형 : xlColumnClustered

누적 세로 막대형 : xlColumnStacked

100% 기준 누적 세로 막대형 : xlColumnStacked100

꺾은 선형 : xlLine

누적 꺾은 선형 : xlLineStacked

100% 기준 누적 꺾은 선형 : xlLineStacked100

표식이 있는 꺾은 선형 : xlLineMarkers

표식이 있는 누적 꺾은 선형 : xlLineMarkersStacked

표식이 있는 100% 기준 누적 꺾은 선형 : xlLineMarkersStacked100

원형 : xlPie

쪼개진 원형 : xlPieExploded

쪼개진 3차원 원형 : xl3DPieExploded

원형 대 원형 : xlPieOfPie

원형 대 가로 막대형 : xlBarOfPie

묶은 가로 막대형 : xlBarClustered

누적 가로 막대형 : xlBarStacked

100% 기준 누적 가로 막대형 : xlBarStacked100

영역형 : xlArea

누적 영역형 : xlAreaStacked

100% 기준 누적 영역형 : xlAreaStacked100

분산형 : xlXYScatter

직선 및 표식이 있는 분산형 : xlXYScatterLines

직선이 있는 분산형 : xlXYScatterLinesNoMarkers

곡선 및 표식이 있는 분산형 : xlXYScatterSmooth

곡선이 있는 분산형 : xlXYScatterSmoothNoMarkers

 

궁금하신 내용은 댓글로 남겨주세요.

반응형