엑셀함수 VBA에서 사용하는 방법
VBA매크로를 적절히 사용한 엑셀문서는 정확하고 빠르면서, 엑셀함수 사용보다 편리하기까지 합니다. 사용법을 익히고 시행착오를 겪어가며 만든 매크로 문서가 현업에 적용돼 사용되는 모습은 뿌듯하기만 합니다.
서당개 시절(?) 나만의 엑셀 VBA매크로 문서를 만들던 때의 열정은 어디간지 찾을수도 없게 됐지만, 여전히 이 문서가 업무에 쓰이고 있는 모습을 보면 어깨가 한껏 올라가기도 하는데요. 누구나 그렇듯 더 이상 해당업무를 하지 않다보니 관심이 점점 떨어져만 가게 됐습니다.
달리 이야기하자면 어쩌다 한 번 열어본 매크로 코드들은 분명 본인이 작성했지만, 주석이 있어도 이게 어떻게 기능을 하고 있는지 알아볼 수 없다는 말인데요. 체계적으로 공부하지 않고 임기응변으로 대응했던 날들을 반성하기도 합니다.
어쨌든 오늘은, VBA매크로를 작성하면서 실제 엑셀에서 사용하는 함수를 그대로 사용하는 방법에 대해 소개해 볼 생각인데요. VBA안에 코드를 사용하면 훨씬 더 빠르고 간단한 매크로가 되겠지만, 초보 입장에서는 어떻게든 원하는 결과값이 나오는 것 부터가 중요할 수 있습니다. 엑셀함수는 곧잘 작성하지만 VBA에는 어려움을 겪고 있다면 한 번 사용해봐도 좋을 것 같습니다.
VBA 엑셀함수
샘플 – 고객명단
실제로 서두에 이야기했던, 현업에 사용하고 있는 매크로 역시 이런 단계부터 밟아가며 만들었습니다.
오늘의 샘플 역시 비슷한데요. 고객명단 시트에 누적된 고객데이터를, 고객보기 시트에서 고객명으로 검색했을 때 나타나게 하는 예제입니다.
데이터 입력 후 매크로
보통은 고객번호가 기본키가 될텐데, 정처없이 만들다보니 고객명이 기본키가 됐습니다.
큰 의미는 없을테니 계속 진행하자면, C4셀에 입력된 고객명 데이터를 기준으로 Vlookup함수를 사용해 나머지 고객번호, 누적금액과 가입일을 각 셀에 뿌려줄 예정입니다.
물론, C5~C7셀 자체에 Vlookup 함수를 입력해도 되지만 조금 더 있어보이게(?) 검색버튼을 누르면 고객명단 시트의 데이터를 가져오게끔 해 보는 것도 좋을 것 같습니다.
매크로 엑셀함수 입력
VBA편집기를 띄워 엑셀에서 사용하는 Vlookup 함수를 그대로 입력해 봤는데요. 주의할 점은 셀을 지정하는 부분에 대괄호([, ])를 사용해 입력해주어야 한다는 점입니다.
worksheetfunction바로 뒤에 마침표를 찍고 엑셀함수를 입력해주면 나머지는 동일하게 사용할 수 있습니다.
매크로 지정
이후 검색버튼에 매크로를 지정해주기 위해 마우스 우클릭 – 매크로 지정 순으로 진행해주고,
검색함수를 지정 후 확인을 눌러줍니다. Sheet1에 입력된 함수코드라 Sheet1에서만 작용됩니다.
테스트
이후 C4셀에 고객명을 입력하고, 검색버튼을 눌러주면 C5~C7셀에 각 데이터가 Vlookup 함수에 의해 불러오게 됐는데요.
약간의 디자인을 해 주고 마무리하면 될 것 같습니다.
당연히 C4셀을 기준으로 한 Vlookup함수이기 때문에, C4셀의 데이터를 바꾸고 검색버튼을 눌러주면 그에 맞는 데이터가 불러오게 됩니다.
마치며
오늘은 어렵게만 느껴지는 VBA매크로에, 조금은 친숙한 엑셀함수를 직접 사용하는 방법에 대해 소개해 봤습니다. 사실, VBA에서 엑셀함수를 직접 사용하는 것은 초보자로서 사용하기 쉬운 장점 말고는 모두 단점이 될 수 있을텐데요.
그러면 또 어떻겠습니까. 다른 어떤 어드바이스도 얻을 수 없는 상황에서는 본인이 알고있는 것을 활용하는 것도 중요하다고 생각하는데요. 물론, 조금 더 공부한 뒤 더 효율적인 코드로 변경하는 과정까지 갈 수 있어야 하겠지만요.