엑셀 vba 기초 데이터 검색하기

지난 시간에 이어서 입력되어 있는 데이터 값을 VBA로 검색하여 데이터를 다시 표시하는 방법을 알아보도록 하겠습니다.


예제로 앞 시간에 만들었던 데이터에 버튼을 추가하여 "사원DB"에 있는 자료를 검색하여 표시를 하는 방법입니다.


엑셀 vba 기초 데이터 검색하기


검색 버튼을 하나 만들어 주겠습니다. [개발도구]-[삽입]-[명령 단추]를 클릭하여 버튼을 하나 더 만들어 줍니다.



버튼을 선택하고 오른쪽 마우스를 클릭하여 [매크로 지정]을 클릭합니다.



매크로 지정에서 [새로 만들기]를 클릭합니다.



그러면 이제 vba 편집창이 나타나는데요. 아래 코드를 입력해 줍니다. 아래 코드는 이해하기 쉽게 코드를 만들어 보았습니다.


검색을 하려면 "사원DB"에 들어있는 모든 데이터를 검색하여야 합니다. 그러기 위해서는 먼저 총 데이터가 얼마인지 알아야 하는데요. 우리는 지난 번에 카운타함수를 이용하여 "사원DB"시트에 있는 데이터의 수를 알수있었습니다.



1번. 그래서 c라는 변수를 만들어 "사원DB" 시트에 i1의 총 데이터 값을 C변수에 넣고 

2번. 1부터 C변수 만큼 반복하게 만들어 줍니다.

3번. 반복하는 동안에 검색할 값과 같은 값을 만나게 되면

4번. 사원DB에 있는 데이터를 사원입력 시트에 넣어라는 명령입니다.



위에 코드를 좀 더 간단하게 변경하고 싶으시면 for문을 하나더 사용하시면 되는데요.  위에 코드를 보면 숫자가 하나씩 변경되는 것을 볼 수 있습니다.


변경되는 숫자를 f라는 변수를 이용하여 코드를 더 단순하게 만들 수 있는데요. 이건 for문을 잘 이해하셔야하기 때문에 처음 접하시는 분들은 맨 위에 처음 코드를 먼저 이해하신 다음 해보시길 권장합니다.



사원입력 시트에서 성명에 데이터를 입력하고 [단추 2]를 클릭하면 



데이터가 있을 경우 사원번호에서 부터 주소까지 데이터가 나타납니다.



버튼 이름도 좀 더 보기 좋게 변경해 줍니다. 안에 들어있는 텍스트는 [텍스트 편집]을 클릭하면 변경할 수 있습니다.



버튼 이름을 입력과 검색으로 변경하니 훨씬 보기 좋은 것 같습니다.


예제를 간단한 사원관리 같은 작은 데이터는 바로 엑셀에 입력하고 찾는 것이 더 빠르겠으나 정말 많은 데이터를 활용하시는 분들이시라면 엑셀 vba를 이용하여 활용해 보시는 것도 좋을 것 같습니다.


댓글(14)

  • 2017.09.10 20:46 신고

    기초라고는 하지만.. 은근 어려운거 같아요.
    나름 프로그래밍이 들어가야 하는 부분이라... ㅋㅋ

  • 2017.09.11 06:36 신고

    엑셀 vba 기초 데이터 검색하기 글 잘 읽었습니다.
    매크로 지정 기능은 특정 반복되는 수식을 입력해놓고 응용할 수 있어서 정말 유용한 것 같습니다.
    새롭게 시작하는 한 주 멋지게 보내시길 바래요^^

    • 2017.09.11 15:33 신고

      네 반복되는 작업을 자동화로 해놓으면 정말 편하더라고요. 다른 분들에게도 도움외 될 것 같아서 한번 올려보았습니다. ^^

  • 2017.09.11 23:32 신고

    엑셀은 어려운거 같아요. 안해서 그런가봐요.

  • 궁금궁금
    2017.09.20 12:41

    정말 잘 읽었습니다!! 혹시 동명이인이 있을 경우는 검색이 안되던데 어떻게 하면 좋을까요??ㅎㅎ

    • 2017.09.20 21:52 신고

      ㅎㅎ^^;; 그 생각까지는 못해 봤네요. 이 방법은 이름을 고유 ID라고 생각하고 넣은 거라서요.

      검색을 할 때에는 그 사람을 나타날수 있는 고유한 무언가를 만들어 줘야 할 것 같습니다.

  • 2018.01.17 16:07

    안녕하세요? 응용해서 사용하고 있는데 한 가지 문의드릴게 있습니다.
    찾는 셀을 하나 더 추가하여 사용하고 싶으면 어떤 코드를 입력해야 하나요?

    • 2018.01.18 23:33 신고

      내용을 조금 어려운데요. 셀을 하나 더 추가 시킨다는건 검색버튼 하나에 기본에 있는 것과 다른 조건 특 두개 이상의 조건을 넣어서 검색을 하신다는 것인지요. 만약 그렇다면 코드는 조건에 따라 많이 달라지고요. 위 조건이 아니라면 따로 버튼을 만들어 위에 코드대로 작업을 하시면 될 것 같습니다.

  • 쿄쿄
    2018.04.20 14:35

    안녕하세요~ 사원db에 사원번호만 다르게 같은사람이 두번들어가야 하는데, 검색을 해보면 사원db에 마지막에 등록된것만 뜨네요 ㅠㅠ 혹시 동명이인이나, 같은사람이 다른 사원번호로 다르게 나오는 코드는 없을까요 ?

    • 2018.04.20 15:29 신고

      위에 검색하는 방법은 고유번호로 검색해서 1명만 나오도록 하는 건데요.

      만얀 이름으로 검색해고 나서 동명이 있을 경우 모두 나와야 하는 것이라면 ...다른 방법을 한번 찾아봐할 것 같습니다. 저도 한번 알아보도록 하겠습니다. ^^

  • 해도지
    2018.11.09 16:27

    일차하는 사람이 없을때 는 어떻게 만드나요

    • 2018.11.12 11:47 신고

      if문을 사용해서 없다는 메세지를 나타나게 만들면 될것 같습니다~

      나중에 코드를 만들어서 올려보도록 하겠습니다.

Designed by JB FACTORY