24.08.2020 Views

Programando o Excel ® Vba Para Leigos - 2ª Ed 2013 NoDRM (1)

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Capítulo 5: Procedimentos Function e Sub no VBA

79

Perceba que a única linha do código que cria esse procedimento

Function executa um cálculo. O resultado matemático (número para a

potência de 1 ⁄ 3 ) é designado à variável RaizCúbica. Não por coincidência,

RaizCúbica também é o nome da função. Para dizer à função qual

valor retornar, você designa aquele valor ao nome da função.

Chamando uma função a partir de um

procedimento Sub

Por não ser possível executar essa função diretamente, você deve chamá-la

a partir de outro procedimento. Entre com o seguinte procedimento no

mesmo módulo VBA que contém a função RaizCúbica.

Sub ChamaFunção()

Ans = RaizCúbica(125)

MsgBox Ans

End Sub

Quando você executa o procedimento ChamarFunção (usando qualquer

dos métodos descritos anteriormente neste capítulo), o Excel exibe

uma caixa de mensagem que contém o valor da variável Ans, que é 5.

O que está acontecendo é: a função RaizCúbica é executada e recebe

um argumento de 125. O cálculo é realizado pelo código da função e o

valor retornado da função é designado à variável Ans. Então, a função

MsgBox exibe o valor da variável Ans.

Tente mudar o argumento que é passado para a função RaizCúbica e

rode novamente a macro ChamarFunção. Isto funciona como deveria —

supondo que você deu à função um argumento válido (um número

positivo).

A propósito, o procedimento ChamarFunção pode ser um pouco

simplificado. A variável Ans não é realmente exigida.Você poderia usar

esta única declaração para obter o mesmo resultado:

MsgBox RaizCúbica(125)

Chamando uma função a partir de

uma fórmula de planilha

Agora, é hora de chamar esse procedimento Function do VBA a partir

de uma fórmula. Ative uma planilha na mesma pasta de trabalho que

contém a definição da função RaizCúbica. Depois entre com a seguinte

fórmula em qualquer célula:

=RaizCúbica(1728)

A célula Exibirá o número 12, que realmente é a raiz cúbica de 1.728.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!