안녕하세요.
엑셀 중에 가장 많이 사용하는 것이 그래프 혹은 차트를 만드는 것 일 겁니다.
저 또는 일을하다보면 차트를 가장 많이 사용합니다.
숫자만 보는 것보다 차트를 만들어서 시각적으로 보는 것이 더 편하기 때문입니다.
물론 보고서를 만들기 위해서도 그렇습니다.
일반적으로 차트를 만들기 위해서 메뉴의 삽입에서 차트를 추가합니다.
그런데 굳이 이것을 매크로, VBA로 복잡하게 만들 필요가 있을까요?
메뉴의 삽입에 있는 차트를 만드는 것은 마우스를 몇 번 움직이여야 하는 번거로움이 있습니다.
만약 루틴하게 반복적으로 동일한 차트를 만들어야 된다면 어떻게 하시겠습니까?
그 때에는 계속 마우스로 차트를 그리시겠습니까?
이 때에는 매크로를 이용하여 차트를 만드는 것이 효율적입니다.
자, 이제 시작해보겠습니다.
엑셀에 위 그림과 같이 예제 테이블을 하나 만들어 보도록 하겠습니다.
메뉴의 개발 도구에서 Visual Basic을 실행합니다.
만약 메뉴에 개발 도구가 안 보이신다면, 아래 블로그를 참고하시어 개발 도구를 보이게 하시면 됩니다.
https://shareinfomation.tistory.com/494
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
궁금하신 내용은 댓글로 남겨주세요.
'엑셀 정보' 카테고리의 다른 글
[엑셀 매크로/VBA] Msgbox 함수를 이용하여 메시지 박스를 꾸며보자 (0) | 2019.12.07 |
---|---|
[엑셀 매크로/VBA] 사용자 정의 폼 완벽하게 이해/사용하기 (2) | 2019.11.28 |
[엑셀 매크로/VBA] 매크로 포함된 파일 저장하기 (0) | 2019.11.27 |
[엑셀 매크로/VBA] 엑셀 파일을 열때 자동으로 실행되는 이벤트 만들기 (4) | 2019.11.26 |
[엑셀 매크로/VBA] 엑셀 파일을 PDF 파일로 저장하는 매크로/VBA 만들기 (11) | 2019.11.26 |