Converter String (Texto) para Número no VBA

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on April 7, 2022

É muito comum que, às vezes, seja necessário converter números armazenados como textos (string) em formato de número no seu código VBA. Neste tutorial vamos tratar das funções que você precisa utilizar para converter uma string (texto) em outros tipos de dados, como integer, long, double, decimal ou currency (moeda) (Clique aqui para aprender mais sobre conversão de números em strings)

Converter String para Integer

Você pode usar as funções CInt ou CLng para converter uma String para um Inteiro (integer). Se o valor for menor que  0.5 a função irá arredondar para baixo, porém, se a fração for maior que ou igual a 0.5 a função irá arredondar para cima. O código abaixo converterá a string para um Integer:

MsgBox CInt("7.55")

O resultado será:
Using the CInt Function in VBA

O código a seguir utiliza a função CLng para converter a string para integer:

MsgBox CLng("13.5")

O resultado será:
Using the CLng Function in VBA

Nota: Você pode usar as funções CInt ou CLng para converter uma string para os tipos de dados integer ou long (respectivamente). O tipo de dados Long é o mesmo que o tipo de dados Integer, com a diferença de que o tipo de dados Long é capaz de armazenar números inteiros muito grandes. No passado, essa distinção fazia sentido pois os computadores tinham quantidade de memória bastante reduzida em relação aos computadores atuais. Na programação moderna, não há qualquer razão para não utilizar o tipo de dados Long, uma vez que a quantidade de memória já não é um problema. Desta forma, é sempre recomendado utilizar o tipo de dados Long ao invés do tipo de dados Integer.

Você pode utilizar a Janela de Verificação Imediata para ver como o valor seria processado se não fosse primeiro convertido para integer:

Debug.Print "13.5" + "13.5"

Using the Immediate Window
Geralmente, o texto será armazenado como uma variável e essa variável precisará ser convertida para o tipo de dados número, como exibido  no código abaixo:

Sub Utilizando_Variaveis()

Dim valorUm As String
valorUm = 5
MsgBox CLng(valorUm) + CLng(valorUm)

End Sub

Converter String para Decimal

Você pode utilizar as funções CDbl ou CDec para converter uma string para o tipo de dados decimal. O código a seguir irá converter a string para o tipo de dados double:

MsgBox CDbl("9.1819")

O resultado será:

Converting a String to a Double Decimal Type

O código a seguir converterá a string para o tipo de dados decimal:

MsgBox CDec("13.57") + CDec("13.4")

O resultado será:

Converting a string to a decimal data type in VBA

Você pode utilizar a Janela de Verificação Imediata para ver como o valor seria processado caso não tivesse sido convertido para os tipos de dados double ou decimal:

Debug.Print "13.57" + "13.4"

O resultado será:

Using Debug.Print to Display values

Note: O tipo de dados decimal pode armazenar números muito maiores que o tipo de dados double, dessa forma, é sempre recomendável utilizar o tipo de dados decimal,, caso não tenha certeza sobre qual dos dois usar.

Converter String para Currency

Você pode usar a função CCur para converter uma string para currency (moeda). O código a seguir irá converter uma string para o tipo de dados currency:

Range("A1").Value = CCur("18.5")

O resultado será:

Converting a String to the Currency Data Type

vba-free-addin

Exemplos de Add-ins de Códigos VBA

Acesse facilmente todos os exemplos de código que se encontram em nosso site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(Nenhuma instalação necessária!)

Baixe de Graça

Retornar aos Exemplos de Códigos VBA