Mais
Como devolver um resultado de uma função VBA
Como posso devolver um resultado de uma função?
Por exemplo:
Public Function test() As Integer
return 1
End Function
Isto dá um erro de compilação.
Como faço para que esta função devolva um número inteiro?
254
3
Para os tipos de retorno que não são objetos, você tem que atribuir o valor ao nome da sua função, desta forma:
Exemplo de uso:
Se a função retorna um tipo de Objeto, então você deve utilizar a palavra-chave
Set
assim:Exemplo de uso:
Note que a atribuição de um valor de retorno ao nome da função não encerra a execução da sua função. Se você quiser sair da função, então você precisa dizer explicitamente 'Sair da Função'. Por exemplo, se você quiser sair da função:
Documentação: http://msdn.microsoft.com/en-us/library/office/gg264233%28v=office.14%29.aspx
As funções VBA tratam o próprio nome da função como uma espécie de variável. Então, ao invés de utilizar um "
retorno
" declaração, você diria apenas:Note, no entanto, que isto não se afasta da função. Qualquer código após esta declaração também será executado. Assim, você pode ter muitas instruções de atribuição que atribuem valores diferentes ao "teste", e qualquer que seja o valor quando você chegar ao final da função, será o valor retornado.
Apenas definir o valor de retorno para o nome da função ainda não é exatamente o mesmo que a instrução
return
do Java (ou outra), porque em java,return
sai da função, assim:Em VB, o equivalente exato leva duas linhas se você não estiver definindo o valor de retorno no final da sua função. Então, em VB, o corolário exato ficaria assim:
Como este é o caso, é também bom saber que você pode usar a variável de retorno como qualquer outra variável do método. Como esta: