Wednesday, November 15, 2006
Excel/엑셀] VBA 함수(Function) 정의; 비베로, 사용자 정의 함수 만들기
엑셀에서는 VBA 즉 비베로, 자신이 함수를 직접 만들어서 사용할 수 있습니다.
다음은, 어떤 숫자를 입력받아서, 그 숫자에 2를 곱한 후, 돌려주는 간단한 함수입니다.
엑셀에서 Alt+F11키를 눌러, 비베 에디터를 호출한 후, 비베 에디터 메뉴에서
삽입 > 모듈
로 모듈을 만든 후, 위의 함수 코드를 복사해 넣으면 됩니다.
(x) 이런 괄호 속의 변수는, 매개변수 즉 파라미터(인수)입니다. 엑셀의 셀에서 직접 지정해주거나, 주소를 사용해 간접적으로 지정해준 값이 x 에 대입됩니다. 그러면 그 x 라는 값을 함수 내부에서 어떤 조작을 가한 후, 그 결과값을 반환합니다.
반환값을 돌려줄 때에는, 위와 같이, 함수 자신의 이름에 결과값을 대입하면 됩니다.
가장 첫번째 셀인 A1 셀에 6 이라는 값을 입력하고
B1 셀에, 방금 만든 foo 라는 함수를
=foo(A1)
이렇게 입력하면, A1 셀에 있는 6 이라는 값에 2가 곱해져서
B1 셀에는 12라는 값이 출력됩니다. foo() 함수가 12라는 값을 반환한 것입니다.
만약 A1 셀에 6000.5 라는 값을 입력하면,
foo()라는 함수가 있는 B1셀의 값은 2배인 12001 로 변합니다.
Function 프로시저는 어떤 값을 반환하기에 수식의 일부로서 사용될 수 있습니다. 예를 들어
=foo(A1) + 10
이렇게 사용할 수도 있습니다. 이러면 foo() 함수의 결과값에 10 이 더해집니다.
그러나 Sub 프로시저는 반환값이 없기에, 수식의 일부로 사용할 수 없습니다. 그냥 서브루틴일 뿐입니다.
다음은, 어떤 숫자를 입력받아서, 그 숫자에 2를 곱한 후, 돌려주는 간단한 함수입니다.
Function foo(x)
foo = x * 2
End Function
foo = x * 2
End Function
엑셀에서 Alt+F11키를 눌러, 비베 에디터를 호출한 후, 비베 에디터 메뉴에서
삽입 > 모듈
로 모듈을 만든 후, 위의 함수 코드를 복사해 넣으면 됩니다.
(x) 이런 괄호 속의 변수는, 매개변수 즉 파라미터(인수)입니다. 엑셀의 셀에서 직접 지정해주거나, 주소를 사용해 간접적으로 지정해준 값이 x 에 대입됩니다. 그러면 그 x 라는 값을 함수 내부에서 어떤 조작을 가한 후, 그 결과값을 반환합니다.
반환값을 돌려줄 때에는, 위와 같이, 함수 자신의 이름에 결과값을 대입하면 됩니다.
엑셀에서 함수 사용 예제
가장 첫번째 셀인 A1 셀에 6 이라는 값을 입력하고
B1 셀에, 방금 만든 foo 라는 함수를
=foo(A1)
이렇게 입력하면, A1 셀에 있는 6 이라는 값에 2가 곱해져서
B1 셀에는 12라는 값이 출력됩니다. foo() 함수가 12라는 값을 반환한 것입니다.
만약 A1 셀에 6000.5 라는 값을 입력하면,
foo()라는 함수가 있는 B1셀의 값은 2배인 12001 로 변합니다.
Function문과, Sub문의 차이 점
Function 프로시저는 어떤 값을 반환하기에 수식의 일부로서 사용될 수 있습니다. 예를 들어
=foo(A1) + 10
이렇게 사용할 수도 있습니다. 이러면 foo() 함수의 결과값에 10 이 더해집니다.
그러나 Sub 프로시저는 반환값이 없기에, 수식의 일부로 사용할 수 없습니다. 그냥 서브루틴일 뿐입니다.
tag: office
엑셀 Excel | 워드 Word | VBA 매크로 | 오피스
<< Home