VBA™ para Excel™ 12: exemplos de funções, manipulação de strings


(ver o anterior)

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.

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!

Esse post foi publicado em administração, dicas, finanças, jobs, textos e marcado , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , . Guardar link permanente.

5 respostas para VBA™ para Excel™ 12: exemplos de funções, manipulação de strings

  1. Pingback: VBA™ para Excel™ 11: como escrever novas funções para o Excel | Ricardo Trevisan

  2. Pingback: VBA™ para Excel™ 13: trabalhando com várias planilhas | Ricardo Trevisan

  3. Pingback: VBA™ para Excel™ 14: vetores e matrizes | Ricardo Trevisan

  4. clayton disse:

    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?

    • ricardo trevisan disse:

      Clayton,

      Não utilizo o VBA fora do Excel, não sei como resolver seu problema…

      Abraços,

      RT

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s