이 자습서에서는 Excel VBA 함수 에 대해 학습합니다. 1) Excel에서 Visual Basic이란 무엇입니까?

2) Excel에서 VBA를 사용하는 방법은 무엇입니까?

3) 사용자 정의 함수는 어떻게 생성하나요?

4) 매크로 작성 방법?

VBAcode 작성 방법 Excel은 사용자에게 일반 사용자를 만족시킬 수있는 충분한 기성 기능 모음을 제공합니다. 사용 가능한 다양한 추가 기능을 설치하여 더 많은 것을 추가 할 수 있습니다. 대부분의 계산은 제공된 것으로 달성 할 수 있지만, 얼마 지나지 않아 특정 작업을 수행하는 기능이 있기를 바라며 목록에서 적합한 것을 찾을 수 없습니다. UDF가 필요합니다. UDF (사용자 정의 함수)는 단순히 VBA를 사용하여 직접 만드는 함수입니다. UDF는 종종 “사용자 정의 함수”라고합니다. UDF는 통합 문서에 연결된 코드 모듈에 남아있을 수 있으며,이 경우 해당 통합 문서가 열려있을 때 항상 사용할 수 있습니다. 또는 상용 추가 기능처럼 Excel에 설치할 수있는 하나 이상의 기능이 포함 된 고유 한 추가 기능을 만들 수 있습니다. UDF는 코드 모듈에서도 액세스 할 수 있습니다. 종종 UDF는 개발자가 VBA 프로 시저의 코드 내에서만 작업하기 위해 만들어지며 사용자는 그 존재를 알지 못합니다. 다른 함수와 마찬가지로 UDF는 원하는만큼 간단하거나 복잡 할 수 있습니다. 쉬운 것부터 시작합시다 …​

직사각형의 면적을 계산하는 함수 네, 당신이 머리 속에서 이것을 할 수 있다는 것을 압니다! 개념은 매우 간단하여 기술에 집중할 수 있습니다. 직사각형의 면적을 계산하는 함수가 필요하다고 가정합니다. Excel의 기능 모음을 살펴 보지만 적합한 기능이 없습니다. 다음은 수행 할 계산입니다.

AREA = LENGTH x WIDTH 새 통합 문서를 연 다음 Visual Basic Editor를 엽니 다 (도구> 매크로> Visual Basic Editor 또는 ALT + F11).

함수를 작성할 모듈이 필요하므로 삽입> 모듈을 선택하십시오. Into the empty module type : Function Area and press ENTER. Visual Basic Editor는 라인을 완성하고 마치 서브 루틴을 생성하는 것처럼 End Function 라인을 추가합니다. 지금까지 다음과 같이 보입니다 …​

Function Area()

End Function

“Area”뒤의 괄호 사이에 커서를 놓습니다. 괄호가 무엇인지 궁금한 적이 있다면 곧 알게 될 것입니다! 함수가 취할 “인수”를 지정합니다 (_argument_는 계산을 수행하는 데 필요한 정보입니다). _Length as double, Width as double_을 입력하고 그 아래 빈 줄을 클릭합니다. 입력 할 때 입력하는 내용에 적합한 모든 항목이 나열된 스크롤 상자가 팝업됩니다.

img2

이 기능을 자동 목록 구성원이라고합니다. 표시되지 않는 경우 꺼져 있거나 (도구> 옵션> 편집기에서 켜짐) 이전에 입력 오류를 범했을 수 있습니다. 구문에 대한 매우 유용한 검사입니다. 필요한 항목을 찾아 두 번 클릭하여 코드에 삽입합니다. 무시하고 원하는 경우 입력 할 수 있습니다. 이제 코드는 다음과 같습니다 …​

Function Area(Length As Double, Width As Double)

End Function

인수의 데이터 유형을 선언하는 것은 의무는 아니지만 의미가 있습니다. Length, Width_를 입력하고 그대로 둘 수 있지만 예상되는 데이터 유형을 Excel에 경고하면 코드가 더 빨리 실행되고 입력 오류를 포착하는 데 도움이됩니다. _double 데이터 유형은 숫자 (매우 클 수 있음)를 나타내며 분수를 허용합니다. 이제 계산 자체입니다. 빈 줄에서 먼저 TAB 키를 눌러 코드를 들여 쓰고 (읽기 쉽도록) _Area = Length * Width._를 입력합니다. 완성 된 코드는 …​

Function Area(Length As Double, Width As Double)

Area = Length * Width

End Function

입력하는 동안 Visual Basic Editor의 또 다른 도움말 기능이 팝업됩니다. 자동 빠른 정보 …​

img31

여기서는 관련이 없습니다. 그 목적은 필요한 인수를 알려줌으로써 VBA에서 함수를 작성하도록 돕는 것입니다. 기능을 즉시 테스트 할 수 있습니다. Excel 창으로 전환하고 길이와 너비에 대한 숫자를 별도의 셀에 입력합니다. 세 번째 셀에 내장 함수 중 하나 인 것처럼 함수를 입력합니다. 이 예제에서 A1 셀에는 길이 (17)가 포함되고 셀 B1에는 너비 (6.5)가 포함됩니다. C1에 _ ​​= area (A1, B1) _를 입력했고 새 함수는 면적 (110.5)을 계산했습니다 …​

img3

때로는 함수의 인수가 선택 사항 일 수 있습니다. 이 예에서는 Width 인수를 선택적으로 만들 수 있습니다. 직사각형이 길이와 너비가 같은 정사각형이라고 가정합니다. 사용자가 두 개의 인수를 입력해야하는 것을 저장하기 위해 길이 만 입력하고 함수가 해당 값을 두 번 사용하도록 할 수 있습니다 (즉, 길이 x 길이 곱하기). 따라서 함수는이를 수행 할 수있는시기를 알고 결정을 돕기 위해 IF 문을 포함해야합니다. 코드를 다음과 같이 변경하십시오 …​

Function Area(Length As Double, Optional Width As Variant)

If IsMissing(Width) Then

Area = Length * Length

Else

Area = Length * Width

End If

End Function

Width의 데이터 유형이 널값을 허용하도록 _Variant_로 변경되었습니다. 이 함수를 사용하면 사용자가 하나의 인수 만 입력 할 수 있습니다. _ = area (A1) _. 함수의 IF 문은 Width 인수가 제공되었는지 확인하고 그에 따라 계산합니다 …​

img4

연료 소비량 계산 기능 자동차의 연료 소비량을 확인하고 싶기 때문에 연료를 구입할 때 마일리지와 연료 탱크를 채우는 데 필요한 연료량을 기록합니다.

영국에서 연료는 리터 단위로 판매됩니다. 자동차의 밀리미터 (좋아, 주행 거리계)는 거리를 마일로 기록합니다. 그리고 나는 너무 늙고 변하기에는 어리석기 때문에 MPG (갤런 당 마일) 만 이해합니다. 그게 조금 슬프다 고 생각한다면 어떨까요? 집에 돌아 오면 Excel을 열고 MPG를 계산하고 자동차 성능을 차트로 표시하는 워크 시트에 데이터를 입력합니다. 계산은 마지막 충전 이후 차량이 주행 한 마일 수를 사용한 연료 갤런 수로 나눈 값입니다 …​

MPG = (마일이 채우기-마지막 채우기 마일) / 연료의 갤런 그러나 연료는 리터 단위로 나오고 갤런에는 4.546 리터가 있기 때문입니다 ..

MPG = (마일이 채우기-마지막 채우기 마일) / 연료 리터 x 4.546 함수를 작성하는 방법은 다음과 같습니다 …​

Function MPG(StartMiles As Integer, FinishMiles As Integer, Litres As Single)

MPG = (FinishMiles - StartMiles) / Litres * 4.546

End Function

그리고 이것이 워크 시트에서 어떻게 보이는지 …​

img5

모든 함수가 수학적 계산을 수행하는 것은 아닙니다. 여기에 정보를 제공하는 것이 있습니다 …​

요일의 이름을 제공하는 함수 요일을 텍스트로 제공하는 날짜 함수가 있는지 자주 묻는 질문 (예 : 월요일). 대답은 ‘아니요’입니다.하지만 만드는 것은 아주 쉽습니다. (부록 : 아니오라고 말했습니까? 잊은 기능을 보려면 아래 참고를 확인하십시오!). Excel에는 요일을 1에서 7까지의 숫자로 반환하는 WEEKDAY 함수가 있습니다. 기본값 (일요일)이 마음에 들지 않으면 1이되는 요일을 선택할 수 있습니다. 아래 예제에서 함수는 “목요일”을 의미하는 “5”를 반환합니다.

img6

하지만 숫자를보고 싶지 않고 “목요일”을보고 싶습니다. 숫자 목록과 해당 날짜 이름 목록이 포함 된 테이블을 참조하는 VLOOKUP 함수를 추가하여 계산을 수정할 수 있습니다. 또는 여러 중첩 IF 문으로 모든 것을 자체적으로 포함 할 수 있습니다. 너무 복잡한! 대답은 사용자 지정 함수입니다 …​

Function DayName(InputDate As Date)

Dim DayNumber As Integer

DayNumber = Weekday(InputDate, vbSunday)

Select Case DayNumber

Case 1

DayName = "Sunday"

Case 2

DayName = "Monday"

Case 3

DayName = "Tuesday"

Case 4

DayName = "Wednesday"

Case 5

DayName = "Thursday"

Case 6

DayName = "Friday"

Case 7

DayName = "Saturday"

End Select

End Function

나는 내 함수를 “DayName”이라고 불렀고, 이것은 (물론) 날짜 여야하는 “InputDate”라고 부르는 단일 인수를 취합니다. 작동 방식은 다음과 같습니다 …​

  • 함수의 첫 번째 줄은 정수 (즉, 정수)가 될 “DayNumber”라는 변수를 선언합니다.

  • 함수의 다음 줄은 Excel의 WEEKDAY 함수를 사용하여 해당 변수에 값을 할당합니다. 값은 1에서 7 사이의 숫자입니다.

기본값은 1 = 일요일이지만 명확성을 위해 어쨌든 포함했습니다.

마지막으로 Case 문 *은 변수 값을 검사하고 적절한 텍스트를 반환합니다.

워크 시트에 표시되는 방법은 다음과 같습니다 …​

img7

=== === 사용자 지정 함수 액세스 통합 문서에 사용자 지정 함수가 포함 된 VBA 코드 모듈이 연결되어있는 경우 위의 예제에서 설명한 것과 같이 동일한 통합 문서 내에서 해당 함수를 쉽게 처리 할 수 ​​있습니다. Excel의 기본 제공 함수 중 하나 인 것처럼 함수 이름을 사용합니다.

함수 마법사 (함수 붙여 넣기 도구라고도 함)에 나열된 함수를 찾을 수도 있습니다. 마법사를 사용하여 일반적인 방식으로 함수를 삽입합니다 (삽입> 함수).

기능 범주 목록을 아래로 스크롤하여 사용자 정의를 찾고 선택하여 사용 가능한 UDF 목록을 확인합니다 …​

img8

img9

사용자 정의 함수에 도움이되지 않는 “도움말 없음”메시지 외에 다른 설명이 없음을 알 수 있지만 간단한 설명을 추가 할 수 있습니다 …​

함수가 포함 된 통합 문서에 있는지 확인하십시오. 도구> 매크로> 매크로로 이동합니다. 여기에 나열된 함수는 표시되지 않지만 Excel은 이에 대해 알고 있습니다! 대화 상자 상단의 매크로 이름 상자에 함수 이름을 입력 한 다음 대화 상자의 옵션 버튼을 클릭합니다. 버튼이 회색으로 표시되면 함수 이름의 철자를 잘못 입력했거나 잘못된 통합 문서에 있거나 존재하지 않습니다! 그러면 기능에 대한 간단한 설명을 입력 할 수있는 다른 대화 상자가 열립니다. 확인을 클릭하여 설명을 저장하고 (여기에 혼란스러운 부분이 있습니다) 취소를 클릭하여 매크로 대화 상자를 닫습니다. 함수가 포함 된 통합 문서를 저장해야합니다. 다음에 함수 마법사로 이동하면 UDF에 대한 설명이 표시됩니다 …​

img10

매크로와 마찬가지로 사용자 정의 함수는 포함 된 통합 문서가 열려있는 한 다른 통합 문서에서 사용할 수 있습니다. 그러나 이렇게하는 것은 좋은 습관이 아닙니다. 다른 통합 문서에 함수를 입력하는 것은 간단하지 않습니다. 함수 이름에 호스트 통합 문서의 이름을 추가해야합니다. 함수 마법사에 의존하는 경우 어렵지 않지만 수동으로 작성하는 것은 어색합니다. 함수 마법사는 다른 통합 문서에있는 UDF의 전체 이름을 표시합니다 …​

img11

함수가 포함 된 통합 문서를 닫을 때 함수를 사용한 통합 문서를 열면 함수를 사용한 셀에 오류 메시지가 표시됩니다. Excel은 그것을 잊어 버렸습니다! 함수의 호스트 통합 문서를 열고 다시 계산하면 모두 정상입니다. 다행히 더 좋은 방법이 있습니다.

둘 이상의 통합 문서에서 사용하기 위해 사용자 정의 함수를 작성하려는 경우 가장 좋은 방법은 Excel 추가 기능을 만드는 것입니다. 이 작업을 수행하는 방법은 Excel 추가 기능 빌드 자습서에서 알아보십시오.

부록 나는 정말로 더 잘 알아야합니다! 절대로 절대 말하지 마라! 요일의 이름을 제공하는 기능이 없다고 말씀 드렸으니 이제는 할 수있는 기능을 기억했습니다. 이 예를보세요 …​

img12

TEXT 함수는 특정 숫자 형식의 텍스트로 셀 값을 반환합니다. 따라서 예에서 = TEXT (A1, “ddd”)를 선택하여 “Thu”를 반환하고 = TEXT (A1, “mmmm”)을 선택하여 “September”등을 반환 할 수 있습니다. Excel 도움말에는 사용 방법에 대한 몇 가지 예제가 더 있습니다. 이 기능.

_ _ 블로그가 마음에 들면 Facebook에서 친구들과 공유하십시오. Twitter와 Facebook에서도 팔로우 할 수 있습니다 .

_ 우리는 여러분의 의견을 듣고 싶습니다. 우리가 작업을 개선, 보완 또는 혁신하고 더 나은 서비스를 제공 할 수있는 방법을 알려주십시오. [email protected]_ __