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

Range|Validation|EventProcedure|Application.SendKeys|IsNumeric()|Offset|
|Collection|Intersect|Offset|Column|CurrentRegion|
|Columns|Macro Recorder|

정보의 유효성검사

프로그래밍에 있어서 가장 중요한 것중의 하나가
유효성검사부분이다
프로그래밍에서 가장 오류를 많이 일으키는것도 데이터의 형식이나
데이터의 정해진 크기의 차이등에서 온다

그래서 일반적인 프로그래밍작업에서 있어서 시간을 많이 할애하는
부분이 정보의 유효성검사(Validation)이기도 하다
또한 초보님들은 이것이 무슨 소린지 이해할때쯤이 되어야
프로그래밍에 맛이 들어가게 되는것이다

엑셀의 시트에서 제공하는 데이터/유효성검사를 살펴보도록하자
간단하게 예를 들자면



그림과 같이 노랑색에 사용자가 알아서 숫자만 넣으면 되는데
사용자는 짖꿎게 항상 문자같은 유효하지 않은 정보를 입력하여
아래와 같은 흉한 모양을 만들고..에이..뭐..이래..엉터리잖아!!라고 한다



그래서 데이타/유효성검사라고 하는 기능이 없을때는 혹은
요사이도 수식을 좋아하는 분들은 아래와 같이 처리한다



아무튼 프로그래밍을 하는 사람이 의도하는 정보를 수단과
방법을 가리지 말고 차단하고 걸러내야 좋은 프로그램이 된다

데이타/유효성검사

그래서 엑셀은 데이타메뉴상에 유효성검사라는 기능이 준비되어 있다
수식을 이용한 개발자들의 시간을 많이 단축시켜 주는 기능이다



그림과 같이 유효성검사를 하고 싶은 셀에

=ISNUMERIC(셀의 주소)

라고 하는 의미는 ISNUMERIC워크시트함수의 결과값이 TRUE일때만
유효한 정보로 처리하겠다고 설정하는것이다
그림과 같이 "x"라는 문자를 넣으면 에러메시지가 나타나게 되는것이다

데이타/유효성검사를 코드실행중에 VB에서 활용해보자

앞 페이지에서 콤보상자를 이용하여 유효한 정보만 입력하게
목록을 구성하여 처리하였었다
이번에는 엑셀이 제공하는 유효성검사목록상자를 코드실행중에
조건에 맞는 목록을 찾아서 자동으로 갱신하는 작업을 해보자
자원은 활용하라고 있는것이니..최대한 활용하면 된다
머리회전이 빠른 분들이 [우노]라는 온라인상의 자원(Useful Resource)을
최대한 자~알 활용하듯이

유효성검사의 목록을 다루는 오브젝트는 어떤것인가??
Range오브젝트이 하위 오브젝트에 Validation오브젝트가 있다
하나의 셀에 하나의 유효성검사만 필요하니까
집합체오브젝트같은것은 필요없고 하나의 셀에 하나의 Validation
오브젝트가 있다

매우 간단한 오브젝트이지만 유용하다



아래의 화일에는..

  • 선택한 셀이 유효한 셀인지 체크하고
  • 해당셀에 해당하는 유효한 정보를 찾아서
  • 중복되지 않는 유일한 정보를 훑어 내어 문자열리스트정보를 만들고
  • 문자열 정보리스트를 Range.Validation.Add 메소드에 전달한다
  • 유효성목록이 선택하자마자 리스트가 열리게도 해보고
  • 버튼을 크릭해야 리스트가 열리게도 해본다
  • 매크로기록기는 설정하지 않은 속성도 모두 나열한다
  • 매크로기록기에서 필요한 부분만 선별편집 할줄 알아야한다


Refresh Validation List On Selection