Sei sulla pagina 1di 3

http://www.cavalcanteassociados.com.br/article.php?

id=194

Criao de funes de planilha


Cavalcante Consultores > Biblioteca de Excel > Criao de funes de planilha

O que ?
Embora o Excel possua um grande nmero de funes, sempre possvel que voc deseje realizar um procedimento especfico ou elaborado demais para encontr-lo na lista de funes pr-definidas. Utilizando VBA, voc pode criar funes personalizadas para realizar este tipo de clculo ou manipulao. Funes definidas pelo usurio podem manipular nmeros, textos ou qualquer outro tipo de dados, e at mesmo devolver valores de erro caso sua execuo no ocorra com sucesso por algum motivo.

Exemplo
Neste exemplo, criaremos uma funo que calcula a hipotenusa de um tringulo retngulo cujos catetos so dados. Ela utilizar a frmula do teorema de Pitgoras, h = a + b . A funo se chamar HIP e deve fazer o seguinte: Receber como parmetros dois nmeros, cateto_a e cateto_b; Verificar se os parmetros acima so positivos; Calcular o valor de h caso os parmetros sejam positivos; Devolver h.

Para criar esta funo, siga os passos abaixo: Abra uma planilha; Abra o editor do Visual Basic (pressionando Alt+F11); Crie um novo mdulo. Para faz-lo, selecione o menu Inserir e escolha o item Mdulo. Observe a figura:

Ao faz-lo, um novo mdulo ser inserido no projeto. nele que voc digitar a funo:

http://www.cavalcanteassociados.com.br/article.php?id=194

Digite o seguinte cdigo: Function HIP(cateto_a, cateto_b As Double) As Double If cateto_a > 0 And cateto_b > 0 Then HIP = Math.Sqr(cateto_a ^ 2 + cateto_b ^ 2) Else HIP = CVErr(xlErrNum) End If End Function Vejamos o que cada linha do cdigo acima faz: Function HIP (cateto_a, cateto_b As Double) As Double: Esta a definio da funo de nome HIP. Os valores dentro dos parnteses so argumentos da funo: ela recebe dois nmeros reais, cateto_a e cateto_b, e devolve um nmero real qualquer. Para mais informaes, consulte o contedo sobre sintaxe da linguagem; If cateto_a > 0 And cateto_b > 0 Then: Esta linha verifica se os parmetros de entrada da funo so positivos, e executa a linha abaixo caso esta condio seja satisfeita; HIP = Math.Sqr(cateto_a ^ 2 + cateto_b ^ 2): Esta linha faz com que a funo HIP devolva a raiz quadrada (obtida a partir da funo Math.Sqr) de cateto_a + cateto_b; Else: Caso a verificao anterior falhe, as instrues escritas aps esta linha sero executadas; HIP = CVErr(xlErrNum): Esta linha faz com que a funo HIP devolva um valor de erro #NM, sugerindo ao usurio que ele deve verificar os dados de entrada fornecidos; End If: Encerra o bloco de testes condicionais realizados anteriormente; End Function: Encerra a funo. A execuo de funes personalizadas idntica das funes pr-definidas do Excel: selecione a clula que deve abrigar seu resultado e digite =HIP(valor_1; valor_2). Os parmetros da funo podem ser clulas ou nmeros. Observe:

http://www.cavalcanteassociados.com.br/article.php?id=194

Eis o resultado da funo:

Pratique!
Ver exemplo em vdeo Baixar planilha

Potrebbero piacerti anche