• 최초 작성일: 2017-09-29
  • 최종 수정일: 2026-09-30
  • 조회수: 11 회
  • 작성자: 권현욱 (엑셀러)
  • 강의 제목: VBA 파워 코딩 240회 - 분기 실적 강조 차트

들어가기 전에

오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.

이번 시간에는 조금 재미난 차트를 하나 만들어 보겠습니다. 앞서 계열의 투명도를 실시간으로 바꾸는 방식을 다룬 적이 있는데, 이번에는 다른 접근으로 미리 만들어 둔 차트 4개를 겹쳐 놓고 옵션 버튼으로 전환하는 방식입니다.

권현욱(엑셀러)
저자: 권현욱(엑셀러), 아이엑셀러 대표

필자는 Excel 컨설턴트, 작가, 그리고 크리에이터입니다. 현재 Microsoft Excel MVP이며, 『챗GPT+엑셀 업무자동화 정석』을 비롯한 10여 권의 도서를 집필했습니다. Excel 자동화 및 생산성 향상 분야에서 25년 넘는 경력을 보유하고 있습니다.

권현욱(엑셀러) 님의 최신 포스트:
  • 최신 글을 불러오는 중...


26년 경력 Microsoft MVP 권현욱(엑셀러) 대표 직강 1강 무료

🎁 파워툴스 마스터클래스 · 엑셀 바이브 코딩

AI에게 말로 지시해서 '나만의 엑셀 도구'를 만들고 리본에 장착합니다.

  • 코딩 지식 없이 시작 · 코드는 AI가 작성
  • 엑셀 리본에 내 탭과 버튼을 만들고 XLAM으로 공유
  • 1강 무료 수강 가능
수강 신청하기 강의 소개 보기

분기 실적을 강조해서 보여주는 차트 만들기

핵심 요약: 차트 4개를 겹쳐 옵션 버튼으로 전환하는 분기 강조 차트

분기별로 강조 색상을 다르게 만든 차트 4개를 같은 위치에 겹쳐 놓고, 옵션 버튼의 Click 이벤트에서 Shapes.ZOrder msoBringToFront로 해당 차트를 맨 앞으로 가져오는 방식입니다.

  • 데이터 구조: 월별 실적을 분기별 4개 열로 재구성
  • 차트 준비: 분기별 강조 차트 4개를 만들어 이름(Chart_1Q~4Q) 지정 후 겹쳐 놓기
  • 전환 방식: OptionButton Click 이벤트에서 ZOrder msoBringToFront
  • 부가 효과: ChartTitle.Text로 차트 제목도 함께 변경

평범한 차트, 분기별로 색을 다르게 하려면?

왼쪽과 같은 데이터로 차트를 작성하면 이런 모양이 나옵니다. 전혀 특별할 것이 없는 평범한 차트죠.

1월부터 12월까지 월별 실적을 하나의 색으로 표시한 평범한 막대 차트
아이엑셀러

위 차트를 분기별로 색상이 다르게 되도록 하려면 어떻게 해야 할까요? "보기 좋은 떡이 맛도 좋다"는 말이 있습니다. 맛은 모르겠지만, 보기 좋게 만들려면 그만큼의 추가 공수 투입이 필요합니다.

데이터 구조부터 바꾸기

데이터와 차트는 '그림자 인형극'과 비슷합니다. 벽에 비치는 모양을 바꾸고 싶다면 그림자를 건드리는 것이 아니라 물체의 형태를 조정해야 하죠. 그런 의미에서 데이터는 인형이고, 차트는 그림자입니다.

월별 실적 한 열짜리 데이터를, 분기별로 4개의 열(1분기~4분기)로 나누어 같은 달에는 해당 분기 열에만 값이 들어가도록 데이터 형태를 바꿉니다. 이렇게 만든 데이터를 이용해 차트를 작성하면 됩니다.

이번 시간에 소개할 차트가 단순히 이런 4계열 차트는 아닙니다. 옵션 버튼을 눌러서 차트 형태가 어떻게 변하는지 살펴보세요. 옵션 버튼을 클릭하면 해당 분기의 계열(막대)만 진하게 나타나고 나머지는 흐릿하게 표시됩니다. 이것은 어떻게 한 것일까요? 딱 1분만 원리를 생각해 본 다음 계속 진도를 나가세요.(미리 답부터 보기 없기!)

차트 4개를 겹쳐서 옵션 버튼으로 전환하기

(1) 분기별로 나눈 데이터를 이용하여 4개의 차트를 만든 다음, 계열의 색상을 다음과 같이 지정합니다. 해당 분기 계열만 진하게 하고, 나머지는 투명도를 80%로 지정하여 흐릿하게 만듭니다.

옵션 버튼을 클릭할 때마다 해당 분기 계열만 진하게, 나머지는 흐리게 표시되는 1~4분기 강조 차트 4개
아이엑셀러

(2) 차트에 이름을 지정합니다. 각 차트를 선택하고 이름 상자에 'Chart_1Q' ~ 'Chart_4Q'까지 4개의 이름을 정의합니다.

(3) 4개의 차트를 서로 겹치도록 한 곳에 포개 놓습니다.

(4) '개발 도구 - 삽입 - ActiveX 컨트롤'에 있는 '옵션 단추'를 4개 삽입하고, 각각의 옵션 버튼을 더블 클릭하여 'Click' 이벤트 프로시저에 다음 코드를 작성합니다.

Private Sub OptionButton1_Click()
    ActiveSheet.ChartObjects("Chart_1Q").Activate
    ActiveSheet.Shapes("Chart_1Q").ZOrder msoBringToFront
    ActiveChart.ChartTitle.Text = "1분기 실적"
End Sub

Private Sub OptionButton2_Click()
    ActiveSheet.ChartObjects("Chart_2Q").Activate
    ActiveSheet.Shapes("Chart_2Q").ZOrder msoBringToFront
    ActiveChart.ChartTitle.Text = "2분기 실적"
End Sub

Private Sub OptionButton3_Click()
    ActiveSheet.ChartObjects("Chart_3Q").Activate
    ActiveSheet.Shapes("Chart_3Q").ZOrder msoBringToFront
    ActiveChart.ChartTitle.Text = "3분기 실적"
End Sub

Private Sub OptionButton4_Click()
    ActiveSheet.ChartObjects("Chart_4Q").Activate
    ActiveSheet.Shapes("Chart_4Q").ZOrder msoBringToFront
    ActiveChart.ChartTitle.Text = "4분기 실적"
End Sub

코드 설명

차트도 도형(Shape)의 한 형태로 인식되기 때문에 Shapes("Chart_1Q").ZOrder msoBringToFront로 해당 차트를 '맨 앞으로 가져오기' 하면, 겹쳐 놓은 4개의 차트 중 그 차트만 화면에 보이게 됩니다. 여기에 ChartTitle.Text로 차트 제목까지 바꿔 주는 방식입니다.

(5) 코드 작성이 끝났으면 '개발 도구' 탭의 '디자인 모드' 아이콘을 클릭하여 디자인 모드를 해제합니다. 이제 옵션 버튼을 클릭할 때마다 겹쳐 놓은 4개의 차트 중 해당 분기 차트가 맨 앞으로 나오면서 강조되어 보입니다.

참고: 이미지에 대하여

두 번째 이미지(옵션 버튼별 강조 차트 4장)는 원본 예제 파일에 포함되어 있던 실제 스크린샷을 그대로 사용했습니다. 첫 번째 이미지(평범한 막대 차트)는 소실된 원본 대신, 원본에 남아 있던 실제 월별 데이터 값으로 동일하게 재현한 것입니다.

새로운 형태의 차트를 만들고자 한다면, 데이터 형태를 어떻게 가져갈 것인지를 늘 먼저 고민하시기 바랍니다.

정리 — 분기 실적 강조 차트 동작 방식

항목 내용
트리거 OptionButton1~4의 Click 이벤트
전환 방법 ActiveSheet.Shapes("Chart_NQ").ZOrder msoBringToFront
사전 준비 분기별 강조 차트 4개를 미리 만들어 같은 위치에 겹쳐 놓기
부가 효과 ChartTitle.Text를 "N분기 실적"으로 변경

자주 묻는 질문 (FAQ)

Q1. v0241에서 다룬 투명도 조절 방식과 어떤 차이가 있나요?

투명도 조절 방식은 차트 1개의 계열 서식을 실시간으로 바꾸는 방식이고, 이번 방식은 미리 만들어 둔 차트 4개를 겹쳐 놓고 ZOrder로 보이는 차트만 바꾸는 방식입니다. 결과는 비슷해 보이지만 원리가 다릅니다.

Q2. 차트가 앞으로 나오지 않고 다른 차트가 보입니다.

코드의 ChartObjects("Chart_1Q")~("Chart_4Q") 이름이 실제로 지정한 차트 이름과 일치하는지 확인하세요. 차트를 선택했을 때 이름 상자에 표시되는 이름과 코드의 이름이 같아야 합니다.

Q3. 옵션 버튼을 클릭해도 아무 반응이 없습니다.

'개발 도구' 탭의 '디자인 모드'가 켜져 있으면 옵션 버튼의 Click 이벤트가 실행되지 않습니다. 코드 작성을 마쳤다면 디자인 모드를 반드시 해제해 주세요.

마치며

차트도 결국 도형의 한 종류라는 점을 이용하면 이렇게 재미있는 효과를 낼 수 있습니다. 새로운 차트를 구상할 때는 데이터를 어떤 형태로 가져갈지부터 고민해 보세요!