VBA를 처음 시작할 때쯤 엑사남님께서 엑셀로 이중유효성검사를 만드는 문제를 내셨다..
물론 당시에 본인은 그 문제를 풀지 못했다.
그로부터 2년..
엑셀로는 아니지만 VBA로 본인은 만족할 만한 다중 유효성검사를 완성하였기에 코드를 올린다.
최대한 깔끔하게 하고 간결하게 만들려고 하였는데.. 그놈의 '조금만 더' 가 또 장황한 코드가 되어버렸다.
부서와 직위는 사용자정렬을 사용하였으며,
성명의 오름차순정렬과 고유값을 위해 ArrayList를 사용하였다.
이벤트 프로시저는 야생마 같은 녀석이다.
프로시저 내에서 이벤트 구문을 중복하여 사용할 경우는 항상 이벤트의 시작과 끝을 잘 생각하여서 사용하여야 한다.
코드 진행은 이렇다.
1. 워크북 오픈이벤트로 부서 / 직위 / 성명에 유효성 검사를 모두 추가한다.
2. 부서만 / 직위만 / 부서+직위를 선택하는 경우의 수에 맞게 코드를 진행하여 실제 보수교육 대상자 목록에 추가 될때에는 해당 직원의 모든 데이터가 들어갈 수 있도록 한다.
3. 우클릭 이벤트를 적용하면 필터링 된 데이터를 보수교육 대상자 목록에 추가할 수 있는데 추가한 후에는 필터링 영역에 해당 직원을 제외해야 한다.
추가로 본인은 언젠가 부터 OFFSET보다는 CELLS코드로 영역선택을 진행하고 있는데
OFFSET은 기준이 (0,0) 이지만 CELLS는 기준이 (1,1)이다.
이 부분은 TIP 카테코리에서 다뤄보도록 하겠다.
'VBA' 카테고리의 다른 글
[VBA] 모래시계 알고리즘 (0) | 2022.05.18 |
---|---|
[VBA] 스토쿠를 풀어보자(Feat. 앳마) (0) | 2022.05.16 |
[VBA] 유효성검사 목록 중 기존 선택목록 제외 (0) | 2022.05.12 |
[VBA] GetObject를 이용한 유효성 검사 (0) | 2022.05.11 |
[VBA] Evaluate로 계산하기 (0) | 2022.05.04 |
댓글