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

Range|Control|EventProcedure|SelectionChange|CurrentRegion|Find|Offset|
|Collection|ComboBox|Columns|Column|
|OptionButton|

정보의 관리를 이해하자

정보를 관리하기 위하여서는 체계적인 원칙을 갖고 보관하는것이 기본이다
체계적인 관리를 위한 대표적인 한 방법이 테이블을 구성하여 보관하는것이다
아래의 두개의 그림
([중복되는 정보 채우기],[중복되는 정보 지우기] 교대로 크릭)
을 비교해 보시기 바란다

중복되는 정보 채우기중복되는 정보 지우기



하나는 정보가 반복하여 입력되어 있어 빈셀이 하나도 없이 채워지고
다른 하나는 반복되는 정보를 쏙 빼버리고
표현한것이다
요점은 엑셀의 데이타메뉴의 정렬/휠터/부분합/피봇테이블등의
분석기능들은 쓸데없는 정보를 반복하여 입력한 꽉채워진
테이블을 유지하여야 가능해진다
초보님들은 빈셀을 둔 상태에서 분석을 하려고 하여 원하는 결과를
얻을 수 없는것이다

모든 정보는 그림과 같은 관계를 유지하게 된다
상위정보가 있으면 하위정보가 상호 관계를 유지하게 되는것이다
이것을 이해못하면 그룹핑도 이해못하고 ,부분합도 이해못하고
피봇테이블도 이해할수 없다
이 말은 곧..정보를 분석할수 있는 개념이 서지 않게 되는것이다
아이들의 교육에서도 정보의 그룹핑과 분류를 자주 연습시키는것이
정보에 대한 관념이 잘 정리되게 된다
야외활동을 하던..숙제를 내주던..
대상을 조사하여 리스팅하고..
이것을 종류별로 분류를 해나가는 습관을 가르친다
각자가 또한 분류방식이 틀리게 된다
분류방식이 틀리다고 하는것은 사물을 보는 시각이 틀리다는 이야기고
분석의 결과도 틀려지게 되는것이다
분석의 결과가 틀리다고 하는것은 분석을 기준으로 새로운 계획을
세우는 내용이 또한 틀려지는것이다
엑셀에서 위와 같은 정보를 분석하기 위하여서는
범위의 중간의 셀의 내용이 빈탕이면 안된다
중복이 되더라도 모두 채워넣어야 한다
이것이 나중에 데이타베이스라는 것을 설명할때 이야기하겠지만
데이타베이스의 관계형테이블과 엑셀테이블과의 차이점이다

그런데 어떤 때는 테이블의 용도에 따라서 중복되는 정보를
모두 채워넣으면 보기가 흉하다
즉 테이블 자체를 어떤 보고서로 사용하려면
정보와 정보간의 관계를 잘 이해할수 없다
그렇다고 일일이 중복되는것을 눈을 까뒤집고 하나씩 지워나갈수도 없다
아래와 같은 구문을 연습해 보시기 바란다
순환문의 좋은 연습이 되고 변수의 활용에 센스가 생긴다

Private Sub optEmpty_Click() setData "off" End Sub Private Sub optFill_Click() setData "on" End Sub Sub setData(sHow As String) Dim rData As Range Dim rColumn As Range Dim rX As Range Dim sTemp As String Set rData = Me.[A1].CurrentRegion For Each rColumn In rData.Columns For Each rX In rColumn.Cells If sHow = "off" Then If rX = sTemp Then rX.ClearContents Else sTemp = rX End If Else If rX <> "" Then sTemp = rX Else rX = sTemp End If End If Next Next End Sub

콤보상자를 이용하여 입력장치를 편리하게

아래의 그림과 같은 경우가 실생활에 많이 있을것이다
자료를 입력할때 앞에 입력한 정보를 읽고 해당 정보의 하위정보를
찾아서 콤보상자에 리스팅한후 이곳의 리스트를 보고 선택하면
실수 없는 입력을 할수 있을것이다



엑셀에서 제공하는 유효성검사(Validation)의 목록을 사용하여도
좋을것이다
그러나 이것도 앞의 정보를 읽고 뒤의 정보의 유효성검사 목록의
내용을 바꿔주는것도 역시 콤보상자와 같은 코딩이 필요할것이다
이것은 다음 페이지에서 해보도록 하고 여기에서는 콤보상자를
이용한다

아래의 화일에서는

  • 워크시트의 SelectionChange이벤트를 활용하고
  • 앞에서 설명되었던 Range오브젝트의 관련
  • 메소드나 속성의 응용하는것에 능숙하도록 감각을 익히고
  • 콘트롤의 속성과 메소드를 응용한다


Refresh ComboBox List On Selection