Funções de Conversão de Tipos: Cbool, CByte, CCur, CDate, CDbl, CInt, CLng, CSng, CStr, Int

Oi Pessoal!

Neste post vou falar sobre como podemos modificar o tipo de dado armazenado em uma variável usando Funções de conversão.

Existem situações em que precisamos converter um determinado tipo de dado para que o sistema consiga efetuar operações. Por exemplo, só conseguiremos efetuar cálculos com um número armazenado na forma de texto se o convertermos para Integer ou Double, que são dois subtipos do VBA que usamos para identificar dados numéricos de uma variável.

Para entender melhor sobre os tipos que temos no VBA, veja o post Declaração de Variáveis VBA (comandos Dim e Option Explicit).

A Função Cbool

 

Esta Função converte uma variável ou expressão para o tipo Boolean (Verdadeiro ou Falso). O argumento desta Função não pode ser texto, caso contrário, ocorrerá erro em tempo de execução.

Exemplo de código:

Sub Função_Cbool()

x = 10 > 36

y = 3

MsgBox CBool(x) & Chr(13) & CBool(y)

End Sub

 

Neste exemplo, a primeira Função da mensagem, CBool(x), retorna Falso como resultado, pois a variável x representa uma expressão errada, já que 10 não é maior que 36.

A segunda Função da mensagem, Cbool(y), sempre resultará em Verdadeiro para qualquer valor diferente de zero.

A Função CByte

Esta Função converte uma variável ou expressão para o tipo Byte. O valor a ser convertido deve estar entre 0 e 255 e não pode ser um texto, para não termo erro em tempo de execução.

Exemplo de código:

Sub Função_CByte()

MsgBox CByte(5 + 20) & Chr(13) & CByte(50)

End Sub

 

A expressão 5+20 é calculada e o resultado, 44, é convertido para o tipo Byte.

Após executarmos o código abaixo, o Excel mostrará uma mensagem de erro em tempo de execução, pois o valor para conversão não está entre 0 e 255.

Exemplo de código:

 

Sub Função_CByte_Erro()

MsgBox CByte(200+70)

End Sub

 

A Função CCur

Esta Função converte uma variável ou uma expressão para o tipo Currency, não podendo o seu argumento ser um texto, para não termos erro em tempo de execução.

Exemplo de código:

 

Sub Função_CCur()

MsgBox CCur(324.4333322 + 12.2234443) & Chr(13) & CCur(543.455666)

End Sub

A Função CDate

Esta Função converte uma variável ou expressão para o tipo Date, mas para não termos erro em tempo de execução, seu argumento deve estar em um formato aceitável para datas.

Exemplo de código:

 

Sub Função_CDate()

MsgBox CDate(“13/05/2008”) & chr(13) & CDate(“13-05-2008”)

End Sub

 

A Função CDbl

 

Esta Função converte uma variável ou expressão para o tipo Double (usado para números grandes com casas decimais).

Seu argumento deve ser um texto para não termos erro em tempo de execução.

Exemplo de código:

 

Sub Função_CDate()

MsgBox CDbl(“3.551232E-32”)

End Sub

 

A Função CInt

Esta Função converte uma variável ou expressão para o tipo Integer, não podendo o seu argumento ser um texto, para não gerar erro em tempo de execução.

Exemplo de código:

 

Sub Função_CInt()

MsgBox CInt(100.45) & Chr(13) & CInt(23.35 + 43.455)

End Sub

A Função CLng

Esta Função converte uma variável ou expressão para o tipo Long, não podendo o seu argumento ser um texto ou estar fora da faixa admitida pelo tipo Long, para não gerar erro em tempo de execução.

 

Exemplo de código:

 

Sub Função_CLng()

MsgBox CLng(“342227865”)

End Sub

 

A Função CSng

 

Esta Função converte uma variável ou expressão para o tipo Single, não podendo o seu argumento ser um texto ou estar fora da faixa admitida pelo tipo Single, para não gerar erro em tempo de execução.

Exemplo de código:

 

Sub Função_CSng()

MsgBox CSng(“5.234454667”)

End Sub

 

A Função CStr

A Função CStr converte uma variável ou expressão para o tipo String.

Exemplo de código:

 

Sub Função_CStr()

MsgBox CStr(2300) & ” hectares de terra”

End Sub

 

A Função Int

 

A Função Int retorna somente a parte inteira de um determinado número.

Exemplo de código:

 

Sub Função_Int()

MsgBox Int(-9.43) & Chr(13) & Int(3.27)

End Sub

Abs, Dr. E

P.S. Gostaria de pedir desculpas, mas infelizmente não estou conseguindo responder todos os e-mails com dúvidas que venho recebendo. Por isso, peço que não usem o espaço de comentários do post para enviar dúvidas.

Deixe uma resposta

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