배움터  
  HOME > 배움터 > 무료강좌
무료강좌
 
엑셀 2000, 황기성님의 엑셀VBA 4일, Excel 2000
excelvbalogo.gif (3602 bytes)
고급필터를 이용한 데이터 검색기능을 VBA로 자동화 하기 (1)

고급 필터 기능은 조건에 맞는 데이터만을 가장 빠르고 효율적으로 추출하는 데에 탁월한 기능을 발휘합니다. 오늘은 이 고급 필터 기능을 VBA로 자동화 하는 예제를 따라 해 봄으로써 VBA가 반복 작업에 얼마 만큼 탁월한 효과를 발휘하게 되는가를 알아 보도록 하겠습니다.


VBA란 Visual Basic for Application의 약자로 엑셀이나 워드, 파워포인트, 아웃룩, 그리고 엑세스와 같은 응용프로그램을 위한 비주얼 베이직 언어입니다. 여러분의 PC에 만약 MS의 오피스 프로그램이 깔려 있다면 여러분은 이미 VBA를 사용할 준비가 되어 있는 셈입니다. VBA는 오피스의 엔진 가운데 하나로 이미 내장되어 있습니다.

① 먼저 검색할 데이터의 목록이 들어 있는 데이터베이스를 구축해야 합니다.

우리의 목적은 이 데이터베이스에 있는 자료들을 고급 필터를 이용해 손쉽게 뽑아내고자 하는 것이며, VBA를 이용하여 이 과정을 자동화하려는 것입니다. 여기서는 아래와 같은 21개의 필드로 이루어진 데이터베이스 목록이 있다고 가정합니다.(이 데이터베이스 목록은 사실, 필자에게 개인 메일로 온 질문에 포함되어 있는, 실제 업무에 사용하는 예제입니다)

구성의뢰번호, 수신, 접수일자, 접속번호, 계약자명, 주민번호, 가입자명, 설치장소, 연락처, 접속형태, 접속회선, 변경사항, 계약형태, ID, ID 2, PASS, 고객번호, 처리번호, 대여장비, 계약기간, 비고

그리고 이 통합문서는 데이터베이스 목록이 있는 '데이터' 시트, 검색 조건을 입력할 '조건' 시트, 그리고 검색한 결과를 표시하려는 '검색' 시트 등 모두 3장의 워크시트로 구성되어 있다고 가정합니다. 그리고 데이터 베이스 목록은 이미 완성되어 있다고 가정합니다.

d_01.gif(31146바이트)

강좌에 포함된 축소된 그림은 클릭하시면 확대해서 보실 수 있습니다.

②  이 데이터베이스 가운데에서 우리는 가입자의 정보를 쉽게 확인해 보기 위해, 계약자명과 가입자명 접속번호, 주민등록번호, ID와 같은 신상정보를 기준으로 데이터를 고급필터를 이용해 추출할 것입니다.
 먼저 '조건' 시트를 선택한 뒤, 검색 조건을 위해 사용할 목록, 즉 데이터 베이스 필드의 목록 가운데에서 접속번호, 계약자명, 가입자명, ID, 주민번호이라는 필드명을 아래와 같이 작성한다('조건' 시트의 A1:A5셀에 입력한다)

주의! 반드시 데이터베이스목록의 필드명과 일치하도록 해야 합니다. 예를 들어, 필드명이 주민번호라고 되어 있다면 이 목록에도 주민번호라고 입력합니다. 즉, 주민등록번호라고 입력하면 안됩니다. 만약 조건의 필드명과 목록의 필드명이 일치하지 않으면 에러가 발생하거나 원하는 데이터를 얻을 수 없으므로 유의해야 합니다.

d_06.gif(16360바이트)

엑셀이 제공하는 컨트롤에는 두 가지 종류가 있습니다. 하나는 양식 메뉴에서 제공하는 컨트롤이고, 다른 하나는 컨트롤 도구 메뉴에서 제공하는 컨트롤입니다. 
양식 도구모음은 엑셀의 한 일원으로서, 엑셀의 다른 컬렉션 개체들과 동일한 방식으로 접근이 가능합니다. 그에 비해 컨트롤 도구 모음은 엑셀과는 별개의 ActiveX컨트롤로 양식 도구모음보다 더욱 유연하고 다양한 기능을 제공합니다.
 하지만, 워크시트 상에서의 작업은 양식도구에서 제공하는 컨트롤을 이용해도 별 무리가 없습니다. 그리고 양식 도구의 컨트롤은 엑셀 개체의 일원이므로 컨트롤 도구모음에서 제공하는 컨트롤보다 간편하게 접근이 가능하다는 점에서 유리한 점이 있습니다. 필자 역시 개인적으로 워크시트에서 작업할 때에는 양식도구 모음의 컨트롤을 이용하는 것을 선호하는 편입니다.

  

③ 검색시트를 선택합니다. 업무자동화를 위해 워크시트에 엑셀이 제공하는 컨트롤들을 이용해보도록 합니다. 만약 워크시트 상에 양식 도구모음이 나타나 있지 않다면, [보기] 메뉴에서 [도구모음]을 선택한 다음, 양식을 선택합니다.

d_05.gif(17660바이트)

④ [양식 도구]에서 [옵션 버튼]을 마우스로 선택한 뒤, 워크시트 상에 삽입하려는 위치에서 왼쪽 마우스를 누른 상태에서 원하는 크기 만큼 드래그한 뒤, 마우스 단추를 떼면 아래와 같이 옵션 단추가 워크시트에 삽입됩니다. 이 때, 이름상자에 Option Button1이라는 개체의 이름을 확인할 수 있습니다.

d_7.gif(18486바이트)

⑤ 같은 요령의 워크시트에 옵션 단추를 4개 더, 그러니까 모두 5개를 삽입합니다.('조건' 시트에 목록이 5개였음을 상기하세요)

팁! 개체를 선택하고 Ctrl 키를 누른 상태에서 마우스를 끌면 개체를 복사할 수 있습니다. 이 때, 마우스 포인터의 모양이 작은 화살표 + 아주 작은 십자로 변합니다. 같은 크기의 옵션 단추를 만들어야 보기가 좋으므로 이 팁을 이용하는 것이 좋습니다.

목차 | 이전 | 다음