VBA – Sair da Subfunção ou Função

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on July 10, 2023

No VBA, você pode sair de uma subfunção ou função usando os comando Exit Sub ou Exit Function.

Exit Sub
Exit Function

Quando a execução do código chegar a Exit Sub ou Exit Function, ele sairá de uma Sub ou Função e continuará com qualquer outra execução de código.

Se você quiser saber como sair de uma Sub em caso de erro, clique neste link: VBA On Error Exit Sub

Se você quiser saber como encerrar a execução de um código inteiro, clique neste link: VBA End

Sair de uma Sub no VBA

Você verá no exemplo o que acontece quando usamos o comando Exit Sub em uma Sub. Criamos uma Sub SairSub, que tem o comando Exit Sub em seu interior. A Sub ChamarSairSub chama essa Sub. Aqui está o código:

Private Sub SairSub()

    Dim i As Integer

    For i = 1 To 10      
        If i = 5 Then
            Exit Sub
            MsgBox "O valor de i é " & i
        End If
    Next i 

End Sub


Private Sub ChamarSairSub()
    Call SairSub
    MsgBox "Sair Sub"  
End Sub

No SairSub, primeiro entramos no Loop For se o valor de i for menor que 10:

For i = 1 To 10

Next i

Depois disso, verificamos se o valor de i é igual a 5, usando o comando If. Se o valor for 5, queremos sair da Sub e retornar a caixa de mensagem com o valor de i:

If i = 5 Then
     Exit Sub
     MsgBox "O valor de i é " & i
End If

Se a condição não for atendida, a instrução a seguir aumenta i em 1 e entra no loop For novamente:

Next i

No ChamarSairSub, primeiro chamamos o Sub SairSub:

Call SairSub

Depois disso, retornamos a caixa de mensagem:

MsgBox "Sair Sub"

Se você executar o ChamarSairSub, ele chamará primeiro o SairSub. Se você executar esse código no modo de depuração, verá que ele percorrerá o loop 5 vezes. Na quinta iteração, o valor da variável i se torna 5 e o código entra no corpo If. Agora a Sub SairSub é encerrada e retorna para ChamarSairSub. A próxima linha é MsgBox “Sair Sub”:

msgbox sair sub

Como você pode ver, o SairSub é encerrado logo após o comando Exit Sub , de modo que a MsgBox “O valor de i é ” & i nunca será executada.

Sair de uma Função no VBA

Sair de uma função no VBA é semelhante a sair de uma Sub, só que o comando é Exit Function. No exemplo, criamos a SairFunc que retorna um número inteiro. A Sub ChamarSairFuncao chama essa função. Aqui está o código:

Private Function SairFunc() As Integer

    Dim i As Integer

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

End Function


Private Sub ChamarSairFuncao()
    Dim intFunc As Integer
    intFunc = SairFunc()
    MsgBox "O valor de intFunc é " & intFunc

End Sub

Na SairFunc, primeiro entramos no Loop For se o valor de i for menor que 10:

For i = 1 To 10

Next i

Depois disso, verificamos se o valor de i é igual a 5, usando o comando If. Se o valor for 5, atribuímos o valor de i ao resultado da função e saímos da função:

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

Se a condição não for atendida, a instrução a seguir aumenta i em 1 e entra no loop For novamente:

Next i

Em ChamarSairFuncao, primeiro chamamos a função SairFunc: Para fazer isso, precisamos declarar a variável intFunc do tipo inteiro e atribuir o resultado da função SairFunc a ela:

Dim intFunc As Integer

intFunc = SairFunc()

Depois disso, retornamos a caixa de mensagem com o valor de intFunc:

MsgBox "O valor de intFunc é " & intFunc

Se você executar a função ChamarSairFuncao, ela chamará primeiro a função SairFunc. Se você executar esse código no modo de depuração, verá que ele percorrerá o loop 5 vezes. Na quinta iteração, o valor da variável i se torna 5 e o código entra no corpo If. Agora o valor de SairFunc se torna i e a função é encerrada e retornada para ChamarSairFuncao. A próxima linha é MsgBox “O valor de intFunc é ” & intFunc:

valor de intfunc

vba-free-addin

Exemplos de Add-ins de Códigos VBA

Acesse facilmente todos os exemplos de código que se encontram em nosso site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(Nenhuma instalação necessária!)

Baixe de Graça

Retornar aos Exemplos de Códigos VBA