내게 필요한 동작을 하는 함수를 만들어 쓸 수 있다는건 신나는 일입니다.
이렇게 만든 사용자 정의 함수를 현재 파일에서 사용할 뿐만아니라 다른 엑셀 파일에서도 쉽게 사용하는 방법을 소개하겠습니다.
실습 파일 다운로드
실습 파일에는 평균성적이라는 이름의 사용자 정의 함수가 있습니다.
현재 파일에서 평균성적 함수를 사용하려면 보통 함수 쓰듯이 셀에 이퀄(=)을 입력한 뒤 함수이름인 '평균성적('을 입력하고, 인수를 지정하고 <Enter>키를 누르면 됩니다.
그냥 보통 함수 쓰는 법과 같죠.
다른 엑셀 파일에서 이 사용자 정의 함수를 실행하려면 복잡해 집니다.
두가지 방법이 있습니다.
첫번째는 사용자 정의 함수가 들어 있는 파일이 열려 있을 때 파일 이름까지 포함해 함수를 불러 사용하는 방법입니다.
실습 파일을 미리 열어 두고 [파일]-[새로 만들기]-[새 통합 문서]를 선택합니다.
[A1] 셀에 커서를 두고 이퀄(=)을 입력한 뒤 '평균값구하기_VBA.xlsm!평균성적('를 입력합니다.
파일명을 입력할 때 대소문자를 구분할 필요는 없지만, 확장자(xlsm)까지 정확하게 적여야 합니다.
그런 다음 인수 2개를 입력해야 하는데, 빈 파일이므로 계산할 부분이 없습니다.
평균성적 함수는 꼭 2개 인수를 입력해야 하고, 인수는 셀 주소를 넣어야 합니다.
적당히 첫번째 인수는 [B3] 셀을 선택하고, 두번째 인수는 [D3:F3] 셀 범위를 선택합니다.
닫는 괄호를 입력해도 되고, 입력하지 않고 <Enter>키를 누르면 자동으로 입력하고 함수 결과를 알려줍니다.
입력한 인수가 빈 값이라 결과로 0이 나오면 됩니다.
사용자 정의 함수 평균성적이 제대로 실행되지 않는다면 '#NAME?' 오류 메시지가 나타납니다.
평균성적이란 함수를 찾을 수 없다는 메시지입니다.
두번째 방법은 VBE를 실행해 사용자 정의 함수 모듈을 현재 파일로 복사해 사용하는 겁니다.
이 방법은 첫번째 방법보다 더 불편한데, 평균성적 함수를 사용할 모든 엑셀 파일에 함수 모듈을 복사해서 써야 한다는 이유 때문입니다.
또 파일을 저장할 때 모두 Excel 매크로 사용 통합 문서로 저장해야 한다는 점도 불편합니다.
만든 사용자 정의 함수를 바꿀 일이 있을 때 함수 모듈을 복사한 모든 엑셀 파일을 열어 일일이 수정해야만 한다는 점도 곤란한 부분입니다.
첫번째와 두번째 방법 모두 마음에 들지 않기 때문에 새로운 방법을 소개합니다.
이게 이 강좌의 본론입니다.
사용자 정의 함수가 들어있는 엑셀 파일을 직접 미리 열어둘 필요없고, 사용자 정의 함수를 사용하고 싶은 모든 엑셀 파일에 함수 모듈을 복사해 쓸 필요도 없는 방법은 Excel 추가 기능으로 등록하는 방법입니다.
빈 엑셀 파일에 사용자 정의 함수 모듈을 복사하고, 그 파일을 Excel 추가 기능으로 등록하겠습니다.
사용자 정의 함수 모듈이 있는 평균값구하기_VBA.xlsm 파일을 선택합니다.
이미 실행되어 있는 상태죠?
그리고 빈 엑셀 파일이 하나 열려 있죠.
이 파일에 사용자 정의 함수 모듈을 복사할 겁니다.
만약 열려 있는 빈 엑셀 파일이 없으면 [파일]-[새로 만들기]-[새 통합 문서]를 선택해 새로 여세요.
<Alt + F11>키를 눌러 VBE를 실행합니다.
왼쪽 프로젝트 탐색창에서 Module1을 선택하고, 마우스 오른쪽 클릭한 뒤 [파일 내보내기]를 선택합니다.
적당한 폴더에 적당한 파일 이름으로 저장하세요.
곧 바로 가져오기할 예정이라 저장 위치나 파일 이름은 중요하지 않습니다.
VBE 프로젝트 탐색창에 VBAProject (통합 문서2)를 마우스 왼쪽을 눌러 선택한 뒤, 다시 마우스 오른쪽 누르고 [파일 가져오기]를 선택합니다.
아까 내보내기 했던 모듈 파일을 선택합니다.
따로 파일 이름을 지정하지 않았다면 Module1.bas 파일입니다.
매크로 모듈을 다른 엑셀 파일로 복사하는 방법입니다.
이제 VBE를 닫고 엑셀로 돌아갑니다.
<Alt + F11>을 눌러도 됩니다.
열려 있는 통합 문서2 파일로 갑니다.
[A1] 셀에 아까 연습한 평균성적 함수가 있네요.
필요 없으니 지우세요.
이제 추가 기능으로 저장합니다.
[파일]-[다른 이름으로 저장]-[찾아보기] 단추를 누릅니다.
[파일 형식]에서 [Excel 추가 기능(*.xlam)]을 선택합니다.
파일 형식을 선택하는 순간 위쪽 저장위치가 특별한 경로로 바뀝니다.
C:\Users\[사용자이름]\AppData\Roaming\Microsoft\AddIns
이 폴더에 저장되어야 엑셀 추가 기능으로 바로 찾을 수 있습니다.
[사용자이름] 부분은 각 컴퓨터마다 다르게 나타날 수 있습니다.
파일 이름은 알기 쉽도록 사용자지정함수라고 입력합니다.
[저장] 단추를 누르면 다시 통합 문서2 파일이 나타납니다.
[개발 도구]-[추가 기능]-[Excel 추가 기능]을 선택합니다.
혹시 [개발 도구] 탭이 표시되지 않는다면 [파일]-[옵션]-[추가 기능]에서 아래 [관리] 항목에서 Excel 추가 기능을 선택하고 [이동] 단추를 누릅니다.
[찾아보기] 단추를 누릅니다.
아까 추가 기능으로 저장했던 사용자지정함수.xlam 파일을 선택하고 [확인] 단추를 누릅니다.
[추가 기능] 대화 상자에 사용자지정함수 목록이 보이고 선택되어 있습니다.
[확인] 단추를 누릅니다.
모든 설정 작업을 끝났습니다.
실행되어 있는 모든 엑셀 창을 닫고 새 엑셀 통합문서를 실행해 사용자 정의 함수 평균성적이 동작하는지 확인해 봅니다.
새로운 사용자 정의 함수를 만들었다면 같은 파일에 추가해 넣을 수 있습니다.
'엑셀' 카테고리의 다른 글
엑셀 VBA로 자료 처리 - 신청자, 회원목록 비교 3 (0) | 2020.07.09 |
---|---|
Excel에서 작성한 Chart를 Word로 옮기기 (0) | 2020.05.20 |
사용자 정의 함수 사용하기 (1) | 2020.05.09 |
엑셀 VBA로 자료 처리 - 신청자, 회원목록 비교 2 (0) | 2020.05.02 |
Range.Interior 개체와 Range.DisplayFormat.Interior 개체 (0) | 2020.04.29 |