VBA 코드 예시로 돌아가기

VBA Exit Sub 과 Exit Function

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 코드 예시로 돌아가기