이번 시간에는 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 |