Function 명령문

Function 프로시저의 본문을 구성하는 이름, 인수 및 코드를 선언합니다.

구문

Function name [(arglist)]
   [statements]
   [name=expression]
   [Exit Function] 
   [statements]
   [name=expression]
End Function

인수:

  • Name: 함수의 이름으로, 표준 변수 이름 지정 규칙을 따릅니다.

  • Arglist: 호출될 때 Function 프로시저로 전달되는 인수를 나타내는 변수 목록입니다. 여러 변수는 쉼표로 구분됩니다.

    arglist 인수의 구문과 부분은 다음과 같습니다.

    [ByVal | ByRef] varname[( )]

    Arglist 인수:

    • ByVal: 인수가 값에 의해 전달됨을 나타냅니다.

    • ByRef: 인수가 참조에 의해 전달됨을 나타냅니다.

    • Varname: 인수를 나타내는 변수의 이름으로, 표준 변수 이름 지정 규칙을 따릅니다.

  • 명령문: Function 프로시저의 본문 내에서 실행될 임의의 명령문 그룹입니다.

  • Expression: Function의 값을 반환합니다.

주석

Public 또는 Private를 사용하여 명시적으로 지정하지 않은 경우 Function 프로시저는 기본적으로 public입니다. 즉, 스크립트의 다른 모든 프로시저에 표시됩니다. Function 내 로컬 변수의 값은 프로시저 호출 사이에서 유지되지 않습니다.

다른 프로시저(예: Sub 또는 Property Get) 내에는 Function 프로시저를 정의할 수 없습니다.

Exit Function 명령문은 Function 프로시저를 즉시 종료합니다. 프로그램 실행은 Function 프로시저를 호출한 명령문 다음에 오는 명령문을 진행합니다. Function 프로시저의 어디에나 개수와 상관없이 Exit Function 명령문이 있을 수 있습니다.

Sub 프로시저와 마찬가지로 Function 프로시저는 인수를 사용하고, 일련의 명령문을 수행하며, 인수 값을 변경할 수 있는 별도의 프로시저입니다. 그러나 Sub 프로시저와 달리, 함수에서 반환된 값을 사용하려는 경우 Functions Sqr, Mid 또는 Chr과 같은 고유 함수를 사용하는 것과 동일한 방식으로 표현식의 오른쪽에 있는 Function 프로시저를 사용할 수 있습니다.

표현식에서 함수 이름과 괄호 안의 인수 목록을 차례로 사용하여 Function 프로시저를 호출합니다. Function 프로시저 호출 방법에 대한 자세한 내용은 Call 명령문을 참조하십시오.

함수에서 값을 반환하려면 함수 이름에 값을 지정합니다. 이러한 지정은 프로시저 내의 어디에나 있을 수 있습니다. 이름에 값이 지정되지 않은 경우 프로시저는 아무것도 반환하지 않습니다.

다음 예에서는 이름이 FindValue인 함수에 반환 값을 지정하는 방법을 보여 줍니다. 이 경우 이름에 False가 지정되어 일부 값을 찾을 수 없음을 나타냅니다.

예 1:

Function FindValue(val)
    Dim notFound
    notFound = True
    'Business Logic
    'val not found. Return a val of False.
    If notFound Then
        FindValue = False   
        Exit Function 
    End If
    ' Business Logic
End Function

'Usage:-
val = FindValue(8)

Function 프로시저에 사용되는 변수는 프로시저 내에서 명시적으로 선언된 변수와 그러지 않은 변수의 두 범주로 구분됩니다. 프로시저에서 명시적으로 선언된 변수는 항상 프로시저에 로컬입니다. 프로시저에서 사용되지만 명시적으로 선언되지 않은 변수도 프로시저 외부의 최상위 수준에서 명시적으로 선언되지 않는 한 로컬입니다.