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!

Publicidade

6 comentários em “VBA™ para Excel™ 12: exemplos de funções, manipulação de strings”

Deixe um comentário

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

Logo 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 )

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.