엑셀

사용자 정의 함수 사용하기

파란바람이 2020. 5. 9. 20:27

어느 분이 질문을 하셔서 사용자 정의 함수를 만들었습니다.

사용자 정의 함수 사용하는 방법을 소개하겠습니다.

 

완성 파일 다운로드

평균값구하기_VBA.xlsm
0.02MB

 

만든 사용자 정의 함수는 최근 3개 시험 점수 평균을 구하는 역할을 합니다.

 

[T5] 셀에서 김치국 학생 국어 과목의 평균 성적을 구합니다.

3월 15일과 3월 5일엔 응시하지 않아 점수가 없습니다.

2월 15일, 2월 5일, 1월 15일이 최근 3번 응시한 성적입니다.

그래서 [E5], [H5], [K5] 셀 점수 합을 구해 3으로 나눈 값을 [T5] 셀에 나타내려고 하는 겁니다.

다른 과목도 마찬가지입니다.

 

<Alt + F11>키를 누르면 Visual Basic for Appications Editor(VBE)가 실행됩니다.

평균성적이란 이름으로 함수를 만들었습니다.

 

인수는 과목명과 계산범위를 넣어줘야 하는데, 채우기해서 다른 셀 값을 구하려면 과목명을 절대참조로 넣어야 하도록 만들었습니다.

 

다양한 환경에서 사용되는 함수라면 입력이 제대로 되었는지, 오류가 날 때 어떻게 동작할지등과 같이 휠씬 복잡하게 작성해야 합니다.

지금 만든 사용자 정의 함수인 평균성적은 잘 아는 사람이 딱 자신이 필요한 부분에서 사용할거라 모르는 사람이 쓸 때 생길 문제는 고려하지 않고 간단히 작성된 것입니다.

그래서 아주 간단한 거죠. ^^;

 

VBE를 실행한 이유는 사용자 정의 함수가 어떻게 만들어졌는지를 소개하기 위한 것이 아니라 있다는 것을 확인하기 위해 실행했습니다.

 

사용자 정의 함수를 사용하려면 엑셀 창에서 보통 함수 쓰듯이 사용합니다.

 

다시 <Alt + F11>키를 누르거나 VBE 창을 닫고 엑셀 창으로 이동합니다.

 

예시로 적혀 있는 [T5:V9] 셀 범위의 입력데이터를 지웁니다.

 

[T5:V9] 셀을 선택하고 마우스 오른쪽 클릭해서 나타난 메뉴에서 [내용 지우기]를 선택합니다.

다시 [T5] 셀을 선택합니다.

 

'=평균성적( ' 까지 입력합니다.

엑셀 기본 함수를 사용할 때와 달리 자동완성 목록이나 도움말이 나타나진 않습니다.

 

이어서 과목명이 있는 [T4] 셀을 선택하고, [F4] 키를 눌러 절대참조합니다.

꼭 셀 주소를 선택해 넣어야 합니다.

다른 형식으로 넣어질 경우를 고려하지 않고 만들었기 때문입니다.

 

쉼표(,)를 쓰고, [B5:S5] 셀 범위를 마우스를 드래그 합니다.

원래 괄호를 닫아야 하지만 그냥 <Enter>키를 누르면 자동으로 닫는 괄호가 입력되고 결과값이 표시됩니다.

다시 커서를 [T5] 셀에 두고 채우기 하면 나머지 학생들의 국어 평균점수도 구해집니다.

 

엑셀 2007 이상 버전에서 매크로가 포함된 파일은 Excel 매크로 사용 통합 문서(*.xlsm)로 저장해야만 매크로나 사용자 정의 함수를 사용할 수 있습니다.

 

다른 엑셀 파일에서 사용자 정의 함수 평균성적을 사용하려면 VBE에서 Module1에 있는 사용자 정의 함수 코드를 복사해 넣어야 쓸 수 있습니다.

당연히 그 파일도 Excel 매크로 사용 통합 문서(*.xlsm) 형식으로 저장해야 계속 쓸 수 있습니다.

 

그때 그때 사용자 정의 함수를 복사해 넣어 쓰기 불편한 경우엔 Excel 추가 기능으로 등록할 수 있습니다.

Excel 추가 기능으로 등록하면 등록된 그 컴퓨터의 모든 엑셀 파일에서 사용자 정의 함수를 쓸 수 있습니다.