이번 시간에는 VBA로 사용자 정의 함수(user defined function) 을 만들어 보도록 하겠습니다.

 

엑셀을 사용하다 보면 기본적으로 많이 쓰는 함수가  sum 함수입니다.

 

이것들은 엑셀에서 기본적으로 제공해주는 함수인데요

 

VBA를 통하여 똑같은 기능을 하는 함수를 따로 만들 수 있습니다.

 

이것을 더 응용해서 자신에게 맞는 함수를 만들 수도 있겠죠


 

sum 함수를 만들기 위해서는 먼저 엑셀을 실행하시고 Alt + F11을 누르시면

 

아래와 같은  VBA 편집창이 나오는데요

 

 

 

여기서 메뉴 => 삽입 => 모듈을 클릭하시면 왼쪽에 모듈에  Module이 생성됩니다

 

모듈을 더블클릭 하시면 오른쪽에 코드를 작성할 수 있는 편집창이 하나 뜨게 되는데요

 

여기에서 우리 원하는 함수를 작성해 주시면 됩니다.


우선 함수를 만든다고 선언을 해줍니다.

 

함수 이름은  sumsum이라고 짓겠습니다.

 

인수는 range 형태로 rng 변수로 받습니다.(예를 들어 "a1:b10" 을 인수로 받게 되는 것입니다.)

 

Function sumsum(rng As Range)

 

처음 합은 0이므로


sum1 = 0

 

c 라는  range 형의 변수를 선언해줍니다.


Dim c As Range

 

그리고 아까전에 인수로 받았던  rng 의 영역에 대해서 모든 셀의 내용을 sum1  변수에 더합니다.

 

For Each c In rng
       sum1 = sum1 + c.Value
Next c

 

그리고 sumsum 변수에 sum1을 대입합니다. 함수이름에 변수를 넣는것은 해당 값으로 함수를 리턴하라는 이야기입니다.

 

따라서 rng 영역에 있는 모든 값을 더해서 리턴이 되는겁니다.


sumsum = sum1

 

함수 끝..


End Function

 

VBA 편집창을 나와서 엑셀에서 sumsum 함수가 잘 돌아가는지 테스트를 해보면....

 

 

 

선택된 영역의 숫자의 합 10이 제대로 나오는 것을 확인 할 수 있습니다!!

 

sum 뿐만 아니라 사용자가 원하는 함수를 만들 수가 있겠지요

 

궁금하신 사항이 있으시면 댓글로 남겨주세요

 

감사합니다.

 

 


Function bb(rng As range)
sum1 = 0
Dim c As range
For Each c In rng
    sum1 = sum1 + c.Value
Next c
bb = sum1
End Function

'엑셀 > VBA' 카테고리의 다른 글

[VBA] 엑셀 그림 일괄 저장하기  (0) 2020.08.20
[VBA] 엑셀 그림 위치 구하기  (0) 2020.08.11
[VBA] 명단에 사진 자동으로 넣기  (0) 2020.07.02

+ Recent posts