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

Excel & VBA---Brain Training


  • 01

테이블|Tree구조로 관계가 구성되는 테이블만들기

에드인으로 만들어 넣은 CPM공정표등에 쌤플 테이블 만들어 넣기가 있다
아래의 그림과 같이 랜덤으로 테이블을 만들어 보시기 바란다



얼핏 생각하면 꽤나 복잡하게 생각할수 있으나
그냥 복잡하게 생각할 것없이 순환문의 기본연습이다

***[LOG-IN]***


이제 위의 테이블을 각각 상위 목록에 해당 하위목록의
합계를 그림과 같이 만들고, 색상을 구분하여 넣어주는 문제



***[LOG-IN]***

이번에는 WBS레벨1과 레벨2의 합계내용을 값이 큰순서로
정렬을 하여 별도의 테이블보고서를 하나 그림과 같이 만들어보기



순환문과 배열을 적절히 활용한다
각자 아는 기능을 동원하여 해보시고 다음 코드와 해설을 보시기를..

***[LOG-IN]***


이제 위에서 작업한 내용을 조금 응용하여
그림과 같이 모든 레벨의 작업명을 WBS그룹별로 정렬을 하여
표현해 보자
프로그래밍은 조금씩 계속 개선시켜나가는 것이지
한꺼번에 만들어내지는 않는다
만들다 보면 생각나고, 또 다른 각도에서 보게 되고 하면서 개선되는것이다


***[LOG-IN]***

그런데 위의 코드를 보면 조금 한심하다
WBS레벨만큼 순환문을 같은 내용을 줄줄이 붙여 나갔다
그렇다면 WBS레벨의 깊이가 5단계,6단계등 아주 깊이 들어간다면
이 단계별로 순환문을 중첩시켜야 하는 바보같은 짓을 해야 한다
또한 WBS레벨의 깊이가 몇단계인지도 알수가 없다면..
프로그래밍적으로 읽어서 몇단계인지 알아내어 처리를 하여야 한다면
위의 해법은 옳바른 해법이 못된다
즉 아래와 같은 바보짓을 해야한다는 것은 문제다

For Each varX In iWbs ' 첫째레벨처리하고 For Each varY In iWbs1 ' 둘째레벨처리하고 For Each varZ In iWbs2 ' 셋째레벨처리하고 Next Next Next </p>

다른 방법이 있어야 할 것이다
소위말하는 재귀용법을 연습해야 한다
이곳 , 저곳에서 자주 이야기하지만, 자꾸 이야기하여야할 가치가
있는 것이니..위의 코드를 재귀용법으로 바꿔 보시기 바란다
성공하면 고급프로그래머되는 셈이다
성공하면 다양한 부분에서 해법을 만들어내는 시각이 넓어진다

다음 화일에 위의 코드 그림과 같이 모두 정리해서 올려 놓았습니다


***[LOG-IN]***

  • 01