Blog

Postado em em 28 de janeiro de 2023

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.

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!

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:

funções de conversão de tipo
funções de conversão de tipo

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.

Tabela para conversão
Tabela para conversão

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.

Conversão de Tipo no VBA
Formatação

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:

Conversão de Tipo no VBA
Ambiente do VBA

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:

Estrutura
Estrutura

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.

Conversão de Tipo no VBA
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:

Concatenar as aspas
Concatenar as aspas

Resultado:

Conversão de Tipo no VBA
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!

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!


Quer aprender mais sobre VBA com um minicurso básico gratuito?

Quer sair do zero no Python e virar uma referência na sua empresa? Inscreva-se agora mesmo no Python Impressionador