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

Excel & VBA---Brain Training


누적 막대챠트 응용

챠트는 복잡한 원시데이타를 그대로 챠트의 원본으로 사용하지는 않는다
원시정보를 챠트를 표현하기 위한 요약정보롤 간단하게
정리를 할 줄 알아야 , 그다음은 챠트의 표현이다
아래의 그림과 같이 어떤 원시데이타를 한번 요약하여 챠트를 그렸다
그러나 이것은 누구나 그릴수 있는 아마츄어 솜씨(노랑색화살표)다
챠트는 요약된 정보를 좀더 눈에 띄게 하이라이트를 주어야
챠트로서의 기능을 한껏 살리는 것이다
그래서 일반 막대챠트가 아닌 누적챠트를(녹색화살표) 사용하여 보도록 하자
그러려면 누적막대챠트의 원본이 될 테이블을 가공할 줄 알아야 한다



정보는 어떤 품목의 매출을 일정기간동안 관찰을 한 것이다
시작과 현재시점사이의 일정기간별 매출의 증감상태만을 눈에 뜨이게
표현 해 본 것이다
그러려면 챠트의 계열이 몇개 추가되어야 하고
몇개의 계열을 추가하려면 현재 요약된 테이블은 하나의 계열만 있다
테이블의 구상을 하여야 할 것이다
테이블을 그리는 작업을 자동화하여 아래와 같이 표현해 보시기 바란다



좋은 챠트는 그냥 그려지는 것이 아니다
챠트의 쏘스를 어떻게 구성하여야 어떤 챠트로
표현할수 있는지 감각이 자동화되어야 한다

문제의 테이블이 어떻게 계산되었는지 보면
(이 로직으로 VBA 로 테이블그리기 로직으로 사용하면 된다)
최초열을 시작과 종료는 그대로 값을 갖고 오고
그 중간의 기간은 시작시점의 값에서 증감으로 표현했다
그 다음 열은 시작값과 종료값만 표현하고
그 다음 열은 이전 시점까지의 합계와 현재시점까지의 합계에서 작은값
그 다음 열은 증가된 값만 표현하고
그 다음 열은 감소된 값을 절대값(음수값을 양수로)으로 표현했다
실은 이렇게 되면 챠트는 그냥 그려질 것이다
쏘스가 되는 테이블이 중요한다

위와 같이 테이블문제를 푸신후 챠트를 처리해보도록 하자

정보를 읽어 들일때는 항상 검증이 앞서야 하고
좋은 소루션은 검증(Validation)이 얼마나 확실하냐에 달려 있다
챠트를 그리기 위한 사용자에게서 받아야 할 정보는
챠트의 항목(Category)으로 사용할 범위와 값(Value)으로 활용할 두개의 범위가
크기가 같아야 한다



어떤 정보를 항목으로 사용하고
어떤 정보를 값으로 사용할 것인지를 가름하는 것이 핵심인 것이다
또한 값은 하나의 계열을 이루고 있다..연속적인 값(Series)
혹은 연속된 값..즉 계열이 여러개로 구성될수도 있는 것이다
계열(들)을 어떻게 구분할 것인가?에 관심을 갖으면
챠트의 쏘스가 되는 테이블의 재구성에 대한 눈이 생기는 것이다

아무튼 첫번째 문제는 위의 챠트를 그리기 위한
유효한 정보범위인지 검증하는 것 부터 해보시기 바란다

검증을 하는 기능은 검증을 위한 함수를 별도로 구성하는 습관이 좋다

Sub Main()
Dim rRange
Set rRange="어디서정보를 갖여온다"
If IsRangeOK(rRange) Then MsgBox "유효한 정보가 아닙니다..다시..":Exit Sub
' ..검증완료 후속작업..
...
...
...
...
...
End Sub

Function IsRangeOK(rToCheck) As Boolean
Dim bX As Boolean
bX=챠트의 쏘스가 유효한지 아닌지 논리값
IsRangeOk=bX
End Function

이런 검증작업은 챠트뿐만 아니라 범위작업에서는 항상 필수적인 것이다
검증작업을 한다는 생각을 항상 염두에 두고 코딩을 하는
습관을 갖도록 하는 것이 좋다


BrainTraining_039_WFChart_1.



검증이 완료되었으면 두번째 문제는 테이블을 위의 그림과 같은
챠트로 표현하기 위한 범위의 정보를 적절히 가공하여 테이블을
확장하는 문제..작성해 보시기를!!!


BrainTraining_039_WFChart_2.



이제 챠트를 그리기 위한 테이블을 만들었으니
이것으로 챠트를 그리면 된다
계열과 항목과의 관계를 잘 정의 하면 되는 것이다
항목이 뭐고 계열이 뭐고 전혀 모르겠으면 uno-xl-programming부분에서
챠트 부분을 좀더 보시면서..



챠트는 개체의 조립이다
챠트전체화면의 서식을 위한 개체는 ChartArea개체
ChartArea내의 실제의 차트가 그려지는 범위은 PlotArea개체
X(항목)과 Y(값) 축에 접근하는 Axes(xlValue),Axes(xlCategory)개체
챠트내의 눈금은 MajorGridLines(주눈금) , MinorGridLines(보조눈금)개체
축의 라벨은 TickLabels개체 등과 같이
차근 차근 하나,하나의 개체에 접근하여 서식을 하거나 값을
주면 되는 것이다


BrainTraining_039_WFChart_3.