Como retornar um valor de uma função vba (com exemplos)
Para retornar um valor de uma função em VBA, você deve atribuir o valor ao nome da função.
Por exemplo, podemos criar a seguinte função para dividir dois valores e depois retornar o resultado da divisão:
Function DivideValues(x,y)
DivideValues = x / y
End Function
O nome desta função é DivideValues , então para retornar um valor desta função precisamos atribuir o resultado de x/y a uma variável de mesmo nome de DivideValues .
Se sua função envolver a lógica If Else , você poderá atribuir o valor ao nome da função várias vezes.
Por exemplo, você pode criar a seguinte função que retorna “Não é possível dividir por zero” se você tentar dividir por zero ou simplesmente retornar o resultado da divisão:
Function DivideValues(x,y)
If y = 0 Then
DivideValues = " Cannot divide by zero "
Else
DivideValues = x / y
End If
End Function
O exemplo a seguir mostra como usar essa sintaxe na prática.
Exemplo: como retornar um valor de uma função VBA
Suponha que queiramos criar uma função em VBA para dividir o valor da célula A2 pelo valor da célula B2 :
Podemos criar a seguinte função para fazer isso:
Function DivideValues(x,y)
DivideValues = x / y
End Function
Quando executamos esta macro, recebemos a seguinte saída:
A função retorna um valor de 5 , que é o resultado de 50 dividido por 10.
Também poderíamos criar uma função que usa a lógica If Else para primeiro verificar se o valor pelo qual estamos dividindo não é igual a zero:
Function DivideValues(x,y)
If y = 0 Then
DivideValues = " Cannot divide by zero "
Else
DivideValues = x / y
End If
End Function
Se alterarmos o valor na célula B2 e depois utilizarmos esta função para realizar uma divisão, receberemos o seguinte resultado:
Como tentamos dividir por zero, “Não é possível dividir por zero” é retornado pela função.
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em VBA:
Como comentar um bloco de código em VBA
Como verificar se o arquivo existe usando VBA
Como criar pastas usando VBA