본문 바로가기
VBA

[VBA] 다중 유효성검사

by 일등미노왕국 2022. 5. 14.

VBA를 처음 시작할 때쯤 엑사남님께서 엑셀로 이중유효성검사를 만드는 문제를 내셨다..

물론 당시에 본인은 그 문제를 풀지 못했다.

 

그로부터 2년..

엑셀로는 아니지만 VBA로 본인은 만족할 만한 다중 유효성검사를 완성하였기에 코드를 올린다.

 

최대한 깔끔하게 하고 간결하게 만들려고 하였는데.. 그놈의 '조금만 더' 가 또 장황한 코드가 되어버렸다.

부서와 직위는 사용자정렬을 사용하였으며,

성명의 오름차순정렬과 고유값을 위해 ArrayList를 사용하였다.

이벤트 프로시저는 야생마 같은 녀석이다. 

프로시저 내에서 이벤트 구문을 중복하여 사용할 경우는 항상 이벤트의 시작과 끝을 잘 생각하여서 사용하여야 한다.

 

코드 진행은 이렇다.

1. 워크북 오픈이벤트로 부서 / 직위 / 성명에 유효성 검사를 모두 추가한다.

2. 부서만 / 직위만 / 부서+직위를 선택하는 경우의 수에 맞게 코드를 진행하여 실제 보수교육 대상자 목록에 추가 될때에는 해당 직원의 모든 데이터가 들어갈 수 있도록 한다.

3. 우클릭 이벤트를 적용하면 필터링 된 데이터를 보수교육 대상자 목록에 추가할 수 있는데 추가한 후에는 필터링 영역에 해당 직원을 제외해야 한다.

추가로 본인은 언젠가 부터 OFFSET보다는 CELLS코드로 영역선택을 진행하고 있는데

OFFSET은 기준이 (0,0) 이지만 CELLS는 기준이 (1,1)이다.

이 부분은 TIP 카테코리에서 다뤄보도록 하겠다.

다중유효성검사(22.05.14).xlsm
0.03MB

 

댓글