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

Control|Treeview|OLEObject|TreeView|Nodes|Node|
|NodeClick|Node.FullPath|Replace()|Split()| |Collection|Resize|UsedRange|EntireRow|Format()| |Application.WorkSheetFunction.SumIf| |Application.WorkSheetFunction.Sum| |Shape|ShadowFormat|FillFormat|Mod|UBound()|

TreeView콘트롤을 활용하여 데이타를 분석하자

앞페이지에서 TreeView의 모양만 갖추었지
아무 작업도 시키지 않았다
아무일도 하지 않는 놈을 비싼 워크시트화면에 올려 놓을수는 없지
일을 아래와 같이 시켜 보자



재미있지 않은가??
보고 싶은대로 어떤 상품의 판매실적이 전체의 몇%나 되는지?
홍길동이가 어떤물건을 얼마나 팔았는지?
어느 종류의 상품이 전체매출에 얼마나 영향을 주었는지??
입맛대로 골라볼수 있는 엑셀 아닌가??
간단하게 Business Information System을 만들어 나간다
아래의 단순한 테이블을
입체적으로 잘 분석해 나갈수 있는것이다



물론 이 테이블의 쏘스는 다양한 곳에서 받아올수 있다
쏘스에서 정보를 받아 오는 부분은 아직 단계가 아니니..이야기하지 말고
단순히 시트상의 테이블을 받은 상태에서
그동안 앞에서 익힌 Range오브젝트와
순환문과 조건문만 능숙하여 떡도 해먹고..밥도 해먹고
술도 담궈먹고..입맛대로 할수 있다
TreeView의 각각의 필요한 이벤트에 어떤 한 작업을 하라는
명령을 풀어 나가면 된다
실은 이런 일은 엑셀이 기본적으로
아래와 같이 데이타메뉴의 부분합으로 처리를 할수도 있고



아래와 같이 피봇테이블로도 처리할수 있는 일이다



그러나 아쉽게도 엑셀을 모든 사람의 컴퓨터에 거의 깔아 놓고
있으면서도 실은 부분합이다..피봇테이블이다!!라고 하는것을
들어 본적도 없고 들어 보았어도 정보의 개념이 희박한
거의 대부분은 한번 설명해서는 죽었다 깨도 사용을 못한다
엑셀개발자들에게는 정말 호구딴지들이다
대개가 아휴..그냥 뭐 간단하게 버튼하나 탁 건들면
주르륵 하고 나오는것 없어요??!@#@#
그런 분들에게는 TreeView같은 콘트롤이 제격이고
엑셀개발자들이 할일이 있게 되는것이다
그냥 눈에 보이는대로 느끼고 크릭하면 되는 것이니까..

TreeView콘트롤에 일을 시키자

TreeView콘트롤에는 제공되는 이벤트프로시져가 많다
그중의 하나 NodeClick이벤트프로시져에 아래와 같이 어떤 Node를
크릭하였는지에 따라서 작업이 어떤 프로시져를 실행하라는
조건문만을 돌리는 작업의 분배 역할만 시키는것이 좋을것이다



Node오브젝트의 FullPath속성은 TreeView의 경로를 문자열값으로
얻게 해준다
TreeView는 컴퓨터의 Folder의 경로명을 표현하는 것과 같다
Node.Parent는 크릭한 노드의 상위 Node오브젝트를 얻게 해준다
TreeView의 속성과 이벤트프로시져들을 잘 관찰해 보시기 바란다

TreeView속성에서 얻은 정보를 분석작업을 하는 프로시져에 인수로 전달하여
원하는 작업을 하게 되는 것이다

아래의 화일에서는..

  • Node.FullPath로 크릭된 Node의 경로를 읽어내서 제목으로 하고
  • Split함수로 경로를 배열화시켜 Node가 몇 단계 레벨에 위치하는지 알고
  • Replace함수로 경로정보내의 문자를 다른 문자로 바꿔주고
  • 상수를 적극 활용하여 테이블의 열을 인식하기 편하게 하고
  • 프로시져를 나누어 작업할때 공통적으로 작업되는 부분을 중복없이 처리하고
  • Range오브젝트를 참조하기에 능숙하여야 하고/UsedRange,Resize,EntireRow,
  • 순환문과 조건문에 익숙하다면 별것도 아니라는것을 알고
  • 상황에 따라 워크시트함수를 활용하는것이 간결하고
  • 중복되지 않는 정보만 뽑아낼때,Collection오브젝트가 편리하다


Group Data With TreeviewControl