1. 문제
아래와 같이 차트에 동그라미 표시가 있는데 이것들의 크기와 색상을 변경하는 방법을 알아보고자 합니다.
2. 해결 과정
가. 매크로 기록
개발 도구 탭에서 매크로 기록 명령을 누릅니다.
그러면 매크로 기록 창이 표시되면서 매크로 이름과 저장 위치 등이 표시되는데, 바꾸려면 바꿔도 됩니다.. 그냥 확인 버튼을 누르고 넘어가겠습니다.
이게 마커(표식) 중 하나에서 마우스 오른쪽 버튼을 누른 후 데이터 레이블 추가에 커서를 갖다 댄 다음 데이터 레이블 추가를 클릭합니다.
그리고, 위 리본 메뉴를 보면 매크로 기록이 기록 중지로 변경되어 있는데, 기록 중지를 누릅니다.
이제 매크로의 내용을 살펴봐야 하므로 개발 도구 탭의 Visual Basic 명령을 눌러 VB 에디터를 실행합니다.
왼쪽에 프로젝트 창이 있고, 여러 개의 파일이 보이는데,
우리가 봐야 할 것은 '차트 색상 크기 조절(문제)이므로,
그 아래 모듈 왼쪽의 + 표시를 누릅니다.
그러면 아래에 Module1이 있는데 더블 클릭하면, 오른쪽에 코드가 보이는데,
ActiveChart.FullSeriesCollection(1)이라는 구문이 반복됩니다.
이제 표식이 ActiveChart.FullSeriesCollection이라는 것을 알았습니다.
나. ChatGPT 질의
chatgpt.com에 접속한 후 아래 메시지 창에
'엑셀 차트의 FullSeriesCollection의 크기와 색상 조절하는 방법'이라고 입력하고 위 화살표키를 누르니
정확하게 답이 도출됩니다. 그런데 누를 때마다 조금씩 코드가 달라지네요.
다. 매크로 수정
이제 매크로를 수정해 보겠습니다.
색상과 크기를 각각 변경하는 코드기 있고, 세 번째에 함께 조절하는 방법이 있으므로 오른쪽 위 '코드 복사' 아이콘을 눌러 코드를 복사한 후 VB 에디터의 코드 창에 붙여 넣습니다.
Sub CustomizeSeries()
Dim chart As Chart
Dim series As Series
' 차트가 활성화된 시트를 참조합니다.
Set chart = ActiveSheet.ChartObjects("Chart 1").Chart
' 모든 시리즈에 대해 색상과 마커 크기를 변경합니다.
For Each series In chart.FullSeriesCollection
series.Format.Fill.ForeColor.RGB = RGB(255, 0, 0) ' 빨간색으로 변경
series.MarkerSize = 10 ' 마커 크기를 10으로 설정
Next series
End Sub
기존 코드 전체를 Ctrl + A키를 눌러서 선택한 후 지울 필요 없이 바로 Ctrl + V키를 눌러서 붙이면 됩니다.
이제 실행(F5) 아이콘을 눌러 실행한 후 엑셀 아이콘을 눌러서 엑셀로 돌아가서 보면
색이 모두 빨간색으로 바뀌었습니다.
그래서 여러 가지로 질문을 해보니 SchemeColor를 이용하는 방법이 있습니다.
해당 줄만 복사한 후 코드를 수정해 보겠습니다.
series.Format.Fill.ForeColor.RGB = RGB(255, 0, 0) ' 빨간색으로 변경
앞에 '(작은따옴표)를 입력해서 주석처리 합니다.
chartSeries.Format.Fill.ForeColor.SchemeColor = i에서
chartSeries를 series로 수정합니다.
그리고, i 값이 1씩 변하도록
윗부분에 i 변수를 선언한 후 초기값으로 3을 지정하고,
Dim i As Integer i = 3 |
series.Format.Fill.ForeColor.SchemeColor = i
아래에 i = i+1을 추가합니다.
완성된 코드는 아래와 같습니다.
Sub CustomizeSeries()
Dim chart As chart
Dim series As series
Dim i As Integer
i = 3
' 차트가 활성화된 시트를 참조합니다.
Set chart = ActiveSheet.ChartObjects("Chart 1").chart
' 모든 시리즈에 대해 색상과 마커 크기를 변경합니다.
For Each series In chart.FullSeriesCollection
'series.Format.Fill.ForeColor.RGB = RGB(255, 0, 0) ' 빨간색으로 변경
' ColorIndex를 사용하여 색상 변경 (예: 3은 빨간색)
series.Format.Fill.ForeColor.SchemeColor = i
i = i + 1
series.MarkerSize = 10 ' 마커 크기를 10으로 설정
Next series
End Sub
엑셀로 돌아가서 화면을 보면 색상이 예쁘게 여러 가지 색으로 표시됩니다.
이제 매크로 사용 통합 문서로 저장해야 하므로
파일 - 다른 이름으로 저장 메뉴를 누른 후
파일 형식을 'Excel 매크로 사용 통합 문서 (*. xlsm)'으로 변경하고, 저장할 폴더와 파일명을 수정한 후 저장 버튼을 누릅니다.
chatGPT가 정확한 답 하나를 제시해 주니 많은 도움이 됩니다.
또한 매크로 기록도 대단한 기능입니다.
'EXCEL - VBA' 카테고리의 다른 글
병합된 셀의 홈(A1) 셀 알아내기(2) - 홈 셀 알아내기 (0) | 2024.05.30 |
---|---|
병합된 셀의 홈(A1) 셀 알아내기(1) - 셀 병합 관련 메소드 및 속성 (0) | 2024.05.29 |
소재지, 특지구분, 본번, 부번 합치기(2) - VBA (0) | 2024.05.23 |
조건부 서식을 인쇄할 때 제거하는 방법 (0) | 2024.04.27 |
VBA로 ColorIndex에 대한 색 표시하기 (0) | 2024.04.12 |