그 결과 어떻게 반환되기를 VBA 에서 함수

그 결과 함수에서 반품해야 어떻게 합니까?

예를 들면 다음과 같습니다.

Public Function test() As Integer
    return 1
End Function

따라서 컴파일 오류.

이 함수는 정수를 반환할 수 있도록 어떻게 합니까?

질문에 대한 의견 (1)
해결책

비사양 객체에는 대한 반환 유형, 이 값을 다음과 같은 함수 이름을 지정할 수 있습니다.

Public Function test() As Integer
    test = 1
End Function

사용 예시:

Dim i As Integer
i = test()

만약 함수가 세트 '키워드' 을 반환하는지 개체 유형, 그리고 이렇게 사용해야 합니다.

Public Function testRange() As Range
    Set testRange = Range("A1")
End Function

사용 예시:

Dim r As Range
Set r = testRange()

단, 반환 값은 할당 함수 이름을 사용하는 함수가 실행 종료하지는 않습니다. 이 함수는 명시적으로 언급하는 종료하십시오 관심용 확인표시를 종료하십시오 합니다 '함수'. 예를 들면 다음과 같습니다.

Function test(ByVal justReturnOne As Boolean) As Integer
    If justReturnOne Then
        test = 1
        Exit Function
    End If
    'more code...
    test = 2
End Function

문서: office.14%29.aspx http://msdn.microsoft.com/en-us/library/office/gg264233%28v =

해설 (7)

VBA 기능ᆞ기술과 자신을 다룰 수 있겠느뇨 함수 이름을 일종의 변수다. 그래서 &quot 사용하는 대신, '리턴' &quot. 그냥 기도하라주여 기술서임을 됩니다

test = 1

하지만, 이 함수의 표시문, break out 않습니다. 또한 이 같은 발언은 후 모든 코드를 실행할 수. 이런 식으로 다른 값을 가질 수 있는 많은 할당에서는 명령문입니다 할당할지 'test' 등 모든 값은 끝에 도달할 때 함수 값을 보답받는단다 될 것으로 보인다.

해설 (2)

그냥 설정값입니다 반환 값을 함수에 대한 이름님은 동일합니까 아직 정확히 Java (또는 다른) ',' 리턴 ',' 기술서임을 복귀하십시오 때문에 자바 가상 머신 (jvm) 에 다음과 같은 함수를 종료하므로

public int test(int x) {
    if (x == 1) {
        return 1; // exits immediately
    }

    // still here? return 0 as default.
    return 0;
}
      • 에서 VB 는 두 줄을 설정하지 않는 경우, 그 정확한 avamer 말 반환 값을 사용하는 함수가 *. 따라서 VB 정확한 따름정리 다시그것들을 다음과 같습니다.
Public Function test(ByVal x As Integer) As Integer
    If x = 1 Then
        test = 1 ' does not exit immediately. You must manually terminate...
        Exit Function ' to exit
    End If

    ' Still here? return 0 as default.
    test = 0
    ' no need for an Exit Function because we're about to exit anyway.
End Function 

39, s 도 잘 알고 있기 때문에, it& 경우. 복귀하십시오 디바이스처럼 가변적입니다 다른 변수를 방법을 사용할 수 있습니다. 다음과 같습니다.


Public Function test(ByVal x As Integer) As Integer

    test = x ' 
해설 (7)

아래 '다음' 변수 '에 반환 값을 코드에서는 사용할 수 있는' 레발 마스크보스 표시하십시오 가치:

Dim retVal As Integer
retVal = test()
Msgbox retVal
해설 (0)