Skip Navigation Links.
Expand VBAVBA
엑셀프로그래밍이 필요한 이유
Expand ExcelExcel
Expand External LibraryExternal Library
Expand SolutionSolution
Expand EssayEssay

Chart|Chart|SeriesCollection|Series|
|Points|Point|Interior|ColorIndex|HasDataLabel|

시각적 분석도구,챠트

보고서를 제출하던..사업계획서를 제출하던
숫자로 꽉 찬 문서를 관심있게 보고 싶어하는 사람은 없다
이런 보고서를 만드는 사람은 스스로 숫자에 푹빠져서 열심히
나름대로 표현을 하지만
이것을 받어서 보는 사람들은 열심히 일한 숫자에는 별로 관심이 없다
이들이 무심하다고 탓할 문제가 아니다
본래가 인간은 특수한 인간은 빼놓고는 숫자읽기를 싫어한다
숫자만 나열하는 문서는
보고 요령이 부족하고 보고를 위한 표현기법이 빵점인것이다
눈에 뭐가 팍 들어 오는 그런것이 있어야 하는데 깨알같은 숫자만
줄줄이 표현된 보고서를 누가 보기 좋아하겠는가??
아무리 좋은 계획도 요령껏 보는 사람의 호기심을 자극하는
임펙트(Impact)가 걸려야 한다
딱 관심이 걸려들면 다음 과정으로 관련정보인 숫자를
보고 싶어 하게 된다
엑셀에서 그런 역할을 하는 녀석이 바로 Chart이다
Chart하나로 보여주고 싶은것을 바짝 요약하여 보여주는 요령을
갖춘다면 광빨잡는데 지장이 없을것이다
이제 부터 Chart라는 오브젝트를
군대 신병훈련소에서 총기 조립분해하듯이 확실하게 하여
겁먹지 말고 Chart오브젝트를 잘 활용하여 엑셀프로그래밍에 날개를
달기 바란다
아래의 그림은 가장 기본적인 챠트이다



한행이나 한열에 주욱 배열된 한무리의 정보를 Chart오브젝트에서는
Series오브젝트라고 한다
이 오브젝트가 없다면 Chart오브젝트는 말짱헛것이다



그림과 같이 계열(Series)가 어느 범위(배열)의 값과 연결되었는지
수식입력줄에서 볼수 있다

=SERIES(,,STUDIO!$C$8:$C$17,1)

수식의 각각의 매개변수는 무엇을 의미하나??
모두 4개의 매개변수중 2개는 빈값이고 2개만 값이 들어있다
빈것 두개가 무엇인지 의문을 갖은 상태로 두시고
3번째인수가 계열(Series)즉 Series오브젝트가 연결되어있는 정보인것이다
4번째인수는 계열중 첫번째계열이라는것이고
이것의 의미는 계열(Series오브젝트)가 챠트에 여러개 들어갈수 있다는것을
말한다..현재의 챠트는 계열이 하나 밖에 없다
호기심많은 분이 위의 수식을 셀에 입력하고 때려 넣어 보았자
@$@#%궁금하면 해보시고...
이것은 챠트만이 사용하는 수식이다

Series오브젝트를 프로그래밍적으로 어떻게 접근할까??
Series오브젝트는

Dim oSeries As Series
Set oSeries = ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
MsgBox TypeName(oSeries)

라고 해보시기 바란다
SeriesCollection은 Series오브젝트를 여러개 집합적으로 갖고 있는
집합체오브젝트(Collection Object)이다
아래의 그림과 같이 계열을 하나 더 추가해보면
계열번호가 2가 됨을 알수 있다



아래와 화일에서는 위의 Series오브젝트의 Interior오브젝트의
ColorIndex속성을 바꾸면 챠트의 계열의 색상을 마음대로 바꿀수 있음을
알수 있다

아래의 그림은 Series오브젝트를 SeriesCollection집합체오브젝트에
하나 더 추가된 상태에서 SeriesCollection집합체를 순환하면서
각각의 Series오브젝트의 속성을 건드려 준것이다



SeriesCollection집합체오브젝트도 역시 다른 오브젝트와 마찬가지로
아래와 같이 순환하면서 각각의 요소오브젝트에 접근하는것이다

For Each oSeries In ActiveSheet.ChartObjects(2).Chart.SeriesCollection
   oSeries.Interior.ColorIndex = Int(Rnd() * 56) + 1
Next

또한 Series오브젝트는 또 무엇으로 구성되어 있을까??
계열을 구성하고 있는 하나하나의 값을 갖고 있는 오브젝트는
Point오브젝트라고 하고 이것은 Points집합체오브젝트가 갖고 있다

아래의 화일에서 SeriesCollection집합체의 Series오브젝트를 순환하면서
Series오브젝트의 하위 오브젝트인 Points집합체오브젝트를 순환하면서
각각의 Point오브젝트를 다루어 보도록 한다



아래의 화일에서는..

  • 각각의 Point오브젝트에 접근하면서
  • 해당Point의 원본값을 갖고 있는 셀을 찾아보고
  • 각각의 Point의 DataLabel을 나타나게 하여 관찰해보면서
  • Chart와 원본과의 관계의 개념을 잡는다
  • Range오브젝트의 접근은 덤으로 연습한다


Chart SeriesCollection Series Points Point HasDataLabel