Conversão de Tipo no VBA – O que São e Como Usá-las?
Hoje eu vou te mostrar as principais funções de conversão de tipo no VBA e como você pode utilizá-las para facilitar seus trabalhos.
No VBA, as funções de conversão de tipo transformam um valor de um tipo de dado em outro. As principais são CInt e CLng (números inteiros), CDbl (decimais), CStr (texto), CDate (datas) e CBool (verdadeiro/falso). Elas evitam erros de tipo ao garantir que o dado esteja no formato esperado antes de um cálculo ou comparação.
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso Canal do YouTube para mais vídeos!
O que você aprende neste vídeo
Resposta rápida: Nesta aula de VBA, o Diego ensina as funções de conversão de tipo, para acertar quando uma variável surge com o tipo errado. Ele mostra a CStr (converter para texto), a CDbl (para número decimal) e as demais, explica como o Excel interpreta números e datas por trás (toda data é um número) e onde isso é útil (importações, CSVs, exportações).
Neste vídeo (12 min):
- 0:00 - As funções de conversão de tipo no VBA: acertar uma variável que veio com o tipo errado.
- 2:00 -
CStr: converter um valor para texto. - 6:00 -
CDbl: converter para número decimal (e as demais funções). - 8:00 - Como o Excel interpreta números e datas por trás (toda data é um número).
- 12:00 - Onde é útil: importações, CSVs e exportações.
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Fala Impressionadores! Você já conhece as funções de conversão de tipo no VBA? Essas funções servem para converter um tipo de dado em outro…
Imagine que você tenha um texto, mas precisa transformá-lo em uma data, ou em um número, como você faria?
Dentro do VBA nós temos as funções de conversão, então podemos utilizar o CInt, por exemplo, para converter uma informação em um número inteiro.
E aí, vamos aprender como converter tipos no VBA e ainda aprender como funcionam as datas no Excel para conseguir converter todas essas informações?
Temos diversas funções de conversão de tipo, veja na tabela abaixo:

O CBool converte o valor para números booleanos que podem resultar somente em verdadeiro ou falso, já o CByte converte o valor para Bytes, ou seja, pode variar em uma escala de 0 a 255.
Estes são dois exemplos para você entender esta tabela e a forma que os conversores funcionam.
Nesta aula vamos nos focar nos mais utilizados:
Nosso objetivo é converter os valores da coluna H da tabela abaixo usando os conversores da coluna G.
É importante lembrar que, quando digitamos um número, o Excel dispõe o número à direita da célula e quando digitamos uma palavra ou algo que o Excel entende como texto, ele o posiciona à esquerda da célula. É importante lembrar deste conceito daqui para frente.

Para conferir a formatação de uma célula basta clicar sobre ela e verificar na guia Página inicial -> número -> formato de número:
Observe abaixo, estamos selecionando uma data formatada como Geral na primeira imagem, vamos usar o CDate para mudar a formatação, após a conversão a formatação vai mudar de Geral para Data.

Embora para nós a data continue aparecendo igual nas duas imagens, devemos ajustar a forma com que o Excel interpreta este valor, porque isso fará diferença na hora de trabalhar com cálculos e fazer análises.
Ambiente VBA
Para acessar o ambiente do VBA e usar os conversores no Excel aperte o atalho Alt + F11 -> Guia Inserir -> Módulo -> Escreva Sub conversaoTipo() e dê enter:
Observe:

Primeiro vamos indicar em quais linhas e colunas vamos fazer a conversão, neste caso será nas linhas 1,2,3,4 e 5 e na coluna 5:

Agora vamos retirar o 1 do outro lado da igualdade e fazer a conversão.
Na coluna E representada pelo número 5, nós vamos obter o resultado que está na coluna 4 (D) convertido conforme os conversores.

Para executar estes comandos podemos usar o F5 ou o play, assim executamos todas a linhas, para executar linha por linha vamos usar o comando F8.
Note que, após a execução, logo na primeira linha já vamos ter um erro. O resultado não teve nenhuma alteração, isso pode acontecer porque o Excel pode não interpretar o comando e acabar reconhecer o valor como um número na sua formatação original.
Como corrigir?
Como a primeira linha continha o CStr que pretende transformar o valor em texto podemos substituir usando a função =Texto, assim obtemos o mesmo resultado da string, outra opção é acrescentar aspas simples (apóstrofe) antes do número.
Neste caso vamos usar aspas simples concatenado com a coluna 4, ou seja, substituir o CStr por “ ‘ “ & na primeira linha do código onde não conseguimos formatar somente usando o comando CStr.
Observe:

Resultado:

Resumo:
1ª Linha = Nesta linha substituímos o CStr por aspas simples (“ ‘ “ & ) e já conseguimos formatar o número como texto, note que o Excel dispôs o resultado do lado esquerdo da célula como faz com os textos.
2ª Linha = Usando o CInt a formatação já funcionou perfeitamente, o resultado está formatado como número inteiro, podemos ver que foi para o lado direito da célula.
3ª Linha = CDbl, o valor deixou de ter a formatação de texto e agora aparece como número com casas decimais, disposto no lado direito da célula.
4ª Linha = Você já deve saber que por trás de cada data no Excel temos um número certo? Este comando retorna o número por trás da data.
5ª Linha = Por fim a data, muitas vezes temos uma data formatada como Geral, isso impede de fazer cálculos com datas, por exemplo, usando o CDate a data aparentemente igual, agora deixou de ter a formatação Geral e passou a estar formatada como Data.
Quer aprender mais sobre VBA? Acesse os links!
Perguntas frequentes
1. O que é conversão de tipo no VBA?
É transformar um valor de um tipo de dado em outro — por exemplo, um texto ’10’ em número 10. No VBA isso é feito por funções como CInt, CDbl, CStr e CDate, garantindo que o dado esteja no formato certo para a operação seguinte.
2. Qual a diferença entre CInt e CLng no VBA?
Ambos convertem para número inteiro, mas o CInt aceita valores até cerca de 32 mil, enquanto o CLng suporta números muito maiores (na casa dos bilhões). Use CLng quando o valor puder ultrapassar o limite do CInt e evitar erro de estouro.
3. Como converter texto em número no VBA?
Use CInt, CLng ou CDbl conforme o tipo de número: CDbl(‘3,5’) retorna 3,5; CLng(‘1000’) retorna 1000. Se o texto não representar um número válido, o VBA gera um erro, então vale validar o conteúdo antes de converter.
4. Como converter um valor em data no VBA?
Use a função CDate, que transforma um texto ou número em data, por exemplo CDate(’25/12/2026′). Ela respeita as configurações regionais do sistema para interpretar o formato, então confira se a data está no padrão esperado.
Conclusão – Conversão de Tipo no VBA
Nesta aula ensinamos uma ferramenta com aplicações muito úteis na construção de macros e códigos no VBA.
É comum na hora de construir macros cairmos em um problema de formatação e interromper o processo por não saber resolver o problema.
Isso pode acontecer quando no código aparecem variáveis com o tipo errado, nesta hora, temos que saber identificar e resolver o problema.
Os conversores mostrados nesta aula são mais uma ferramenta para você saber reconhecer e resolver problemas de maneira rápida, mais um recurso importante para você!
Eu fico por aqui! Até a próxima!
Hashtag Treinamentos
Para acessar outras publicações de VBA, clique aqui!

