Excel에서 사용자 정의 함수 만들기

참고: 사용자 언어로 가능한 한 빨리 가장 최신의 도움말 콘텐츠를 제공하고자 합니다. 이 페이지는 자동화를 통해 번역되었으며 문법 오류나 부정확한 설명을 포함할 수 있습니다. 이 목적은 콘텐츠가 사용자에게 유용하다는 것입니다. 이 페이지 하단의 정보가 도움이 되었다면 알려주세요. 쉽게 참조할 수 있는 영어 문서가 여기 있습니다.

Excel 다양 한 기본 제공 워크시트 함수를 포함 하는 있지만 모든 수행할 계산 종류에 대 한 함수 없는 수도 있습니다. Excel의 디자이너 할 수 없습니다. 모든 사용자의 계산 요구 해야 하는 될 수 있습니다. 대신 Excel 사용 하면이 문서에 설명 하는 사용자 정의 함수를 만들 수 있습니다.

매크로, 같은 사용자 지정 함수의 Visual Basic Applications (VBA) 프로그래밍 언어를 사용 합니다. 크게 두 가지 방법으로 매크로에서 다르게 작동 합니다. 먼저, Function 프로시저 Sub 프로시저를 대신 사용합니다. 즉, End Sub대신 End 함수 사용한 Sub 문 및 종료 하는 대신 함수 문이 표시 된 시작 됩니다. 둘째, 작업을 수행 하는 대신 계산을 수행 합니다. 특정 종류 문 목표를 선택 하 고 범위, 서식을 지정 하는 등의 사용자 정의 함수에서 제외 됩니다. 이 문서를 만들고 사용자 정의 함수를 사용 하는 방법에 알아봅니다. 함수 및 매크로 만들려면 Visual Basic Editor VBE (), Excel에서 별도 새 창에서 열리는 함께 작업할 합니다.

귀사 100 개 이상의 단위에 대 한 순서 제공 되는 제품의 판매에 10%의 수량 할인은 가정 합니다. 다음 단락에서이 할인을 계산 하는 함수를 설명 해 보겠습니다.

아래 예제에서는 각 항목, 수량, 가격, 할인 (있는 경우)를 나열 하는 주문 양식 및 결과 포장된 단위 가격을 보여 줍니다.

사용자 정의 함수 없이 예제 주문 양식

이 통합 문서에서 사용자 지정 할인 함수를 만들려면 다음이 단계를 따릅니다.

  1. Visual Basic Editor를 열려면 Alt + F11 키를 눌러, Mac에서 키 ( FN + ALT + F11 )을 다음 삽입 을 클릭 하 고 > 모듈 입니다. Visual Basic Editor의 오른쪽에 있는 새 모듈 창이 나타납니다.

  2. 복사 하 고 새 모듈에 다음 코드를 붙여 넣습니다.

    Function DISCOUNT(quantity, price)
    If quantity >=100 Then
    DISCOUNT = quantity * price * 0.1
    Else
    DISCOUNT = 0
    End If

    DISCOUNT = Application.Round(Discount, 2)
    End Function

참고: 코드를 알아보기 쉽게 줄 들여쓰기를 Tab 키를 사용할 수 있습니다. 들여쓰기의 편의 되며은 선택적 요소와 관계 없이 코드가 실행 됩니다. 들 여 쓴된 줄을 입력 한 후 다음 줄 들여쓰기를 마찬가지로 됩니다 Visual Basic Editor 가정 합니다. 밖으로 이동 하려면 (즉, 왼쪽) 하나의 탭 문자, Shift + Tab 을 누릅니다.

이제 새 할인 함수를 사용할 준비가 되었습니다. Visual Basic Editor를 닫고, G7, 셀을 선택 하 고 다음을 입력:

=DISCOUNT(D7,E7)

Excel 단위당 $47.50에서 200 단위에서 10% 할인을 계산 하 고 $950.00를 반환 합니다.

함수 DISCOUNT(quantity, price)와 VBA 코드의 첫 번째 줄에 있는 두 가지 인수가, 수량가격할인 함수 해야 한다는 표시 합니다. 워크시트 셀에 함수를 호출할 때 해당 두 인수를 포함 해야 합니다. 수식에서 = DISCOUNT(D7,E7), D7 수량 인수 이며 E7 가격 인수입니다. 이제 할인 수식 아래에 표시 된 결과를 얻으려면 G8:G13를 복사할 수 있습니다.

Excel에서이 function 프로시저를 해석 하는 방법을 살펴보겠습니다. Enter 키를 누르면 현재 통합 문서의 할인 이름에 대 한 Excel 모양과 VBA 모듈에서 사용자 지정 함수 인지를 찾습니다. 가격수량 괄호 안의 인수 이름이 할인 계산 기반으로 하는 값에 대 한 개체 틀 표시 됩니다.

사용자 정의 함수를 사용한 예제 주문 양식

다음 코드 블록의 문과 수량 인수를 검사 하 고 판매 된 품목의 숫자가 100 보다 크거나 있는지 여부를 결정 합니다.

If quantity >= 100 Then
DISCOUNT = quantity * price * 0.1
Else
DISCOUNT = 0
End If

판매 된 품목의 숫자가 100 보다 크거나 VBA 수량가격 값을 곱합니다. 0.1 곱합니다 결과 다음과 같은 문을 실행 합니다.

Discount = quantity * price * 0.1

결과 할인변수로 저장 됩니다. 값을 변수에 저장할 VBA 문은 등호의 오른쪽에 있는 식을 계산 결과 변수 이름 왼쪽에 할당 하기 때문에 할당 문을 이라고 합니다. 할인 변수 function 프로시저와 같은 이름이 므 할인 함수 호출을 워크시트 수식으로 변수에 저장 된 값이 반환 됩니다.

수량 100 보다 작은 경우 VBA 다음 문을 실행 합니다.

Discount = 0

마지막으로, 다음 문을 할인 변수 두 개의 소수 자릿수를 할당 한 값으로 반올림 합니다.

Discount = Application.Round(Discount, 2)

VBA에 없는 ROUND 함수는 하지만 Excel 않습니다. 따라서이 문에서 ROUND를 사용 하 여 응용 프로그램 개체 (Excel) Round 메서드 (함수)을 찾으려면 VBA 알 있습니다. 단어 앞 word 응용 프로그램 을 추가 하 여 그렇게 Round 합니다. VBA 모듈에서 Excel 함수가 액세스 해야 할 때는 다음이 구문을 사용 합니다.

사용자 정의 함수 함수 문이 표시 된 시작 하 고 종료 함수 문을 사용 하 여 종료 해야 합니다. 함수 이름 외에도 함수 문 일반적으로 하나 이상의 인수를 지정합니다. 그러나 함수 인수 없이 만들 수 있습니다. 몇 가지 기본 제공 기능을 포함 하는 Excel-RAND 하 고 예를 들어 이제-인수를 사용 하지 않는 합니다.

함수 문 다음 function 프로시저 내리고 함수에 전달 되는 인수를 사용 하 여 계산을 수행 하는 하나 이상의 VBA 문이 포함 되어 있습니다. 마지막으로, 곳 function 프로시저에 포함 해야 함수와 같은 이름의 변수 값을 할당 하는 문입니다. 함수 호출 되는 수식에이 값이 반환 됩니다.

사용자 정의 함수에서 사용할 수 있는 VBA 키워드 수는 수보다 작은 매크로에서 사용할 수 있습니다. 사용자 정의 함수는 나 다른 VBA 매크로 또는 함수에 사용 되는 식에는 워크시트에서 수식에 값을 반환 이외의 모든 작업을 수행할 수 없습니다. 예를 들어 사용자 정의 함수 창 크기 변경, 셀에 수식을 편집 하거나 변경할 수 없습니다 글꼴, 색 또는 셀의 텍스트에 대 한 패턴 옵션입니다. Function 프로시저에 이러한 종류의 "작업" 코드를 포함 하는 경우 해당 함수 #VALUE 반환! 오류가 발생 했습니다.

Function 프로시저 (외에도 계산 수행) 수행할 수 있는 하나의 작업 대화 상자가 표시 됩니다. 함수를 실행 하는 사용자의 입력을 얻는 수단으로 InputBox 문 사용자 정의 함수에 사용할 수 있습니다. MsgBox 문은 사용자에 게 정보를 전달 하는 방법을 사용할 수 있습니다. 사용자 지정 대화 상자 또는 사용자 폼 사용할 수도 있습니다 있지만이 소개의 범위를 벗어나는 제목입니다.

간단한도 매크로 및 사용자 정의 함수를 읽기 어려울 수 있습니다. 메모의 형태로 설명 텍스트를 입력 하 여 이해 하기 쉽게 하 게 만들 수 있습니다. 앞에 아포스트로피가 있는 설명 텍스트 하 여 메모를 추가 합니다. 예를 들어 다음 예제에서는 메모와 할인 함수를 보여 줍니다. 다음과 같은 메모를 추가 하면 자신이 나 다른 사람이 시간이 지남에 따라 VBA 코드를 유지 하려면를 보다 쉽게 있습니다. 변경 하는 코드에 나중에 필요한 경우 수월해 했던 원래 이해 해야 합니다.

예제 메모와 VBA 함수

아포스트로피 자체로 메모 줄에서 다음 중 하나를 만들 수도 있고 VBA 포함 된 줄의 오른쪽에 코드 되므로 같은 줄에서 오른쪽으로 모든 항목을 무시 하려면 Excel 확인할 수 있습니다. 전반적인 용도 설명 하는 메모를 사용 하 여 코드의 상대적으로 긴 블록 시작 하 고에 게 문서 개별 문 인라인 주석 사용 될 수 있습니다.

다른 문서에 매크로 및 사용자 정의 함수 방법은 설명이 포함 된 이름을 지정 하도록 합니다. 예를 들어 매크로 레이블이름 대신 있습니다 수 이름을 MonthLabels 좀 더 구체적으로 매크로 역할 목적을 설명 하 하십시오. 매크로 및 사용자 정의 함수에 대 한 설명이 포함 된 이름을 사용 하 여 특히 유용 많은 프로시저를 만든 경우 비슷하지만 동일 하지 목적으로 되어 있는 절차를 만드는 경우에 특히 합니다.

매크로 및 사용자 정의 함수를 설명 하는 방식을 선호 함의입니다. 중요 한 문서, 몇 가지 방법을 채택 일관성 있게 사용을입니다.

사용자 정의 함수를 사용 하는 함수를 만든 모듈 포함 된 통합 문서 열려 있어야 합니다. 해당 통합 문서가 열려 있지 않으면 #NAME 겠어요? 함수를 사용 하 려 할 때 오류가 발생 했습니다. 다른 통합 문서에서 함수를 참조 하는 경우 함수가 들어 있는 통합 문서 이름 가진 함수 이름 앞에 야 합니다. 예를 들어 Personal.xlsb 라는 통합 문서에서 할인 라는 함수를 만들고 다른 통합 문서에서 해당 함수를 호출 하는 경우 =personal.xlsb!discount(), =discount()단순히 입력 해야 합니다.

저장할 수 있습니다 직접 일부 키 입력 (및 가능한 입력 오류) 함수 삽입 대화 상자에서 사용자 정의 함수를 선택 하 여. 사용자 정의 함수는 사용자 정의 범주에 나타납니다.

함수 삽입 대화 상자

사용자 정의 함수에서 사용할 수 있도록 보다 쉽게 항상은 별도 통합 문서에 저장 하 고 추가 기능으로 해당 통합 문서를 저장 합니다. 다음 가능 추가 기능을 사용할 수 있는 Excel을 실행할 때마다 합니다. 이 작업을 수행 하는 방법은 다음과 같습니다.

  1. 파일 을 클릭 해야 하는 함수를 만든 후 > 다른 이름으로 저장 합니다.

    Excel 2007Microsoft Office 단추 를 클릭합니다 하 고 다른 이름으로 저장 클릭

  2. 다른 이름으로 저장 대화 상자에서 파일 형식 드롭다운 목록을 열고 Excel 추가 기능을 선택 합니다. AddIns 폴더에서 MyFunctions같은 이름으로 인식할 수 있는 통합 문서를 저장 합니다. 다른 이름으로 저장 대화 상자의 기본 위치는 하기만 하면 해당 폴더를 제안 합니다.

  3. 통합 문서를 저장 한 후 클릭 파일 > Excel 옵션 입니다.

    Excel 2007Microsoft Office 단추 를 클릭 하 고 Excel 옵션 을 클릭 합니다.

  4. Excel 옵션 대화 상자에서 추가 기능 범주를 클릭 합니다.

  5. 관리 드롭다운 목록에서 Excel 추가 기능 을 선택 합니다. 다음 이동 단추를 클릭 합니다.

  6. 추가 기능 대화 상자에서 아래와 같이 통합 문서를 저장 하는 데 사용 이름 옆에 있는 확인란을 선택 합니다.

    추가 기능 대화 상자

  1. 파일 을 클릭 해야 하는 함수를 만든 후 > 다른 이름으로 저장 합니다.

  2. 다른 이름으로 저장 대화 상자에서 파일 형식 드롭다운 목록을 열고 Excel 추가 기능을 선택 합니다. MyFunctions같은 이름으로 인식할 수 있는 통합 문서를 저장 합니다.

  3. 통합 문서를 저장 한 후 클릭 도구 > Excel 추가 기능 입니다.

  4. 추가 기능 대화 상자에서 찾아보기 단추 찾기 추가 기능에서 열기 를 클릭 한 다음 추가 기능에 사용 가능한 추가 기능 상자 옆의 확인란을 선택 합니다.

다음이 단계를 수행한 후 사용자 정의 함수를 사용할 수 있습니다 Excel을 실행할 때마다. 함수 라이브러리에 추가 하려는 경우 Visual Basic Editor를 반환 합니다. Visual Basic Editor 프로젝트 탐색기 VBAProject 제목 아래에 표시 하는 경우 추가 기능 파일에 따라 명명 된 모듈을 표시 됩니다. 추가 기능에서 확장.xlam을 갖게 됩니다.

VBE의 명명된 모듈

함수 코드를 표시 하려면 Visual Basic Editor를 사용 하면 프로젝트 탐색기에서 해당 모듈을 두 번 클릭 합니다. 새 함수를 추가 하려면 코드 창에서 마지막 함수 권리가 종료 함수 문 뒤에 삽입 포인터를 배치 하 고 입력을 시작 합니다. 다양 한 함수의 이러한 방식으로 필요 하 고 항상은 사용할 수 함수 삽입 대화 상자에서 사용자 정의 범주에서 만들 수 있습니다.

이 콘텐츠 표시 닷지 및 Microsoft Office Excel 2007 Inside Out책 자신의의 일부로 김덕훈 Stinson가 작성 원래 되었습니다. 최신 버전의 Excel 에서도에 적용 하려면 업데이트 되었다면 했습니다.

추가 지원

Excel 기술 커뮤니티의 전문가에게 질문하고, Answers 커뮤니티에서 지원을 받고, Excel 사용자 의견에서 새로운 기능이나 개선 사항을 제안해 보세요.

Office 기술 확장
교육 살펴보기
새로운 기능 우선 가져오기
Office Insider 참여

이 정보가 유용한가요?

의견 주셔서 감사합니다!

피드백을 주셔서 감사합니다. Office 지원 에이전트와 연락하는 것이 도움이 될 것 같습니다.

×