VBA Exit Sub 과 Exit Function

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Younjung Kim

Last updated on 3월 26, 2023

VBA에서 서브프로시저 또는 함수 종료 명령은 Exit Sub 또는 Exit Function 을 사용하여 수행할 수 있습니다.

Exit Sub
Exit Function

코드 실행이 Exit Sub 또는 Exit Function, 에 도달하면 하위 프로시저나 함수를 종료하고 이후 코드실행을 계속합니다.

오류 시 하위 프로시저를 종료하는 방법을 알아보려면 이 링크를 클릭하세요: VBA On Error Exit Sub

전체 코드 실행을 종료하는 방법을 알아보려면 이 링크를 클릭하세요: VBA End

VBA에서 하위 프로시저 종료하기

아래 예제에서 Sub에서 Exit Sub 명령을 사용하면 어떤 일이 발생하는지 확인할 수 있습니다. Exit Sub 명령이 포함된 Sub ExitSub를 만들었습니다. Sub CallExitSub는 이 Sub를 호출합니다. 다음은 코드입니다:

Private Sub ExitSub()

    Dim i As Integer

    For i = 1 To 10      
        If i = 5 Then
            Exit Sub
            MsgBox "The value of i is" & i
        End If
    Next i 

End Sub


Private Sub CallExitSub()
    Call ExitSub
    MsgBox "Exit Sub"  
End Sub

 

ExitSub 프로시저에서 우선 i 값이 10보다 작으면 For 반복문에 들어가도록 코드를 입력합니다:

For i = 1 To 10

Next i

그런 다음 If 명령을 사용하여 i의 값이 5와 같은지 확인합니다. 값이 5이면 프로시저를 종료하고 i 값이 포함된 메시지 박스를 반환하도록 의도하여 코드를 작성합니다:

If i = 5 Then
     Exit Sub
     MsgBox "The value of i is" & i
End If

조건이 충족되지 않으면 다음 구문을 통해 i를 1씩 증가시키고 다시 For 반복문에 들어갑니다:

Next i

 

CallExitSub프로시저에서는 우선 ExitSub 프로시저를 호출합니다:

Call ExitSub

그런다음 메시지박스를 출력합니다:

MsgBox "Exit Sub"

CallExitSub를 실행하면 먼저 ExitSub를 호출합니다. 디버그 모드에서 이 코드를 실행하면 루프를 5번 반복하는 것을 볼 수 있습니다. 5번째 반복에서 변수 i의 값은 5가 되고 코드가 If 문에 진입합니다. 이제 ExitSub 프로시저가 종료되고 CallExitSub로 돌아갑니다. 마지막으로 실행될 코드는 MsgBox “Exit Sub”입니다:vba exit sub

 

보시다시피 ExitSub 프로시저는 Exit Sub 명령 직후에 종료되므로 MsgBox “The value of i is” & i 는 실행되지 않습니다.

VBA에서 함수 종료하기

VBA에서 함수를 종료하는 것은 Sub 프로시저를 종료하는 방법과 유사하지만 명령어가 Exit Function이라는 점만 다릅니다. 이 예제에서는 정수를 반환하는 ExitFunc를 만들었습니다. :

Private Function ExitFunc() As Integer

    Dim i As Integer

    For i = 1 To 10
        If i = 5 Then
            ExitFunc = i
            Exit Function
        End If
    Next i

End Function


Private Sub CallExitFunction()
    Dim intFunc As Integer
    intFunc = ExitFunction()
    MsgBox "The value of intFunc is " & intFunc

End Sub

ExitFunc에서는 i 값이 10보다 작으면 For 루프를 진입합니다:

For i = 1 To 10

Next i

그런 다음 If 명령을 사용하여 i의 값이 5와 같은지 확인합니다. 값이 5이면 함수 결과에 i 값을 할당하고 함수를 종료합니다:

If i = 5 Then
    ExitFunc = i
    Exit Function
End If

조건이 충족되지 않으면 다음 구문을 통해 i를 1씩 증가시키고 다시 For 루프에 들어갑니다:

Next i

 

CallExitFunction에서 ExitFunc 함수를 호출합니다: 이를 위해 intFunc 변수를 정수 유형으로 정의하고 ExitFunc 함수의 결과를 할당해야 합니다:

Dim intFunc As Integer

intFunc = ExitFunction()

그런 다음 intFunc의 값과 함께 메시지 박스를 반환합니다:

MsgBox "The value of intFunc is " & intFunc

 

CallExitFunction을 실행하면 먼저 ExitFunc 함수를 호출합니다. 디버그 모드에서 이 코드를 실행하면 루프를 5번 반복하는 것을 볼 수 있습니다. 5번째 반복에서 변수 i의 값은 5가 되고 코드가 If 본문에 들어갑니다. 이제 ExitFunc의 값은 i가 되고 함수가 종료되어 CallExitFunction으로 반환됩니다. 다음으로 실행될 코드는 MsgBox “The value of intFunc is ” & intFunc: 입니다:

vba exit function

vba-free-addin

VBA 코드 예시 추가 기능

본 웹사이트에 있는 모든 코드 예시에 쉽게 접근해보세요.

메뉴로 이동하여 클릭만 하면 코드는 모듈에 바로 입력됩니다. .xlam 추가 기능.

(설치가 필요 없습니다!)

무료 다운로드

VBA 코드 예시로 돌아가기