Atendendo a pedidos, deixo aqui mais alguns exemplos de funções para Excel. Veja o post anterior sobre como escrever novas funções para o Excel.
O primeiro exemplo converte temperatura em graus Celsius (tempC) para graus Fahrenheit (tempF):
Function CparaF (tempC as double) as double
Dim tempF as double
tempF = tempC / 5 + 32
CparaF = tempF
End Function
O segundo exemplo retorna o inteiro mais próximo (menor ou igual) da raiz quadrada de um número real. Por exemplo, para o número real 23, retornará 4 (a raiz quadrada de 23 é 4,7958…).
Function RaizInteira (num as double) as double
Dim cont as integer
cont = 0
Do While cont * cont <= num
cont = cont +1
Loop
RaizInteira = cont – 1
End Function
Há também funções para manipular strings. Os dois principais operadores para isto são o Len e o Mid. O Len tem a seguinte aparência:
Len (string)
E mede o comprimento da string:
Len (RicardoTrevisan)
O comando acima retorna o valor 15 (conta 15 caracteres).
Observação: Len conta também os espaços em branco.
O Mid tem a seguinte aparência:
Mid (string, POS, TAM)
E extrai um pedaço da string na posição POS, de tamanho TAM, da seguinte forma:
Dim X as string
X = Maria
Mid (x,1,1) = M
Mid (x,2,1) = a
Mid (x,1,2) = Ma
Veja uma função (abaixo) que extrai o primeiro nome da pessoa. Com ela você vai perceber as possibilidades de utilização do operador Mid. Repare também como colocamos o “≠” no VBA, como “<>”.
Function Prenome (nome as string) as string
Dim letra as string
Dim i as integer
Dim resposta as string
reposta = “”
i = 1
letra = Mid(nome, i, 1)
Do While letra <> ” ” AND i < Len (nome)
‘atenção ao espaço que há entre ” “
resposta = resposta & letra
i = i + 1
letra = Mid (nome, i, 1)
Loop
Prenome = resposta
End Function
Da mesma forma, podemos também obter apenas o sobrenome da pessoa:
Function Sobrenome (nome as string) as string
Dim letra as string
Dim i as integer
Dim resposta as string
resposta = “”
i = Len(nome)
letra = Mid (nome, i, 1)
Do While letra <> ” ” AND i > 0
resposta = letra & resposta
i = i – 1
letra = Mid (nome, i, 1)
Loop
Sobrenome = resposta
End Function
Dica: você pode usar a Função de VBA NotIsEmpty para testar se uma célula do Excel já foi preenchida. A sintaxe é a seguinte:
NotIsEmpty (Cells (lin, col))
Se a célula já estiver ocupada, este teste retorna Verdadeiro (“não está vazia” é verdade).
Até a próxima!
Tenho uma dúvida, estou programando via VBA e desejo que o mesmo envi um e-mail.
criei uma varável tipo string, ela contem o e-mail de uma determinada pessoa.
Como faço para colocar o canteudo dessa varia vel no “TO” do e-mail? Não consigo fazer.
Ex: Varial string chamada “email” possui o valor clayton.santos@vcimentos.com.br
como fazer para o campo TO ficar com o valor clayton.santos@vcimentos.com.br?
CurtirCurtir
Clayton,
Não utilizo o VBA fora do Excel, não sei como resolver seu problema…
Abraços,
RT
CurtirCurtir
sea funcão celsius para Fahrenheit, está incorreta
CurtirCurtir