VBA – Tipo de Dados Long (Dim Variável)

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on August 29, 2023

Tipo de Variável Long

O tipo de dados Long do VBA é usado para armazenar valores de dados muito longos (-2.147.483.648 a 2.147.483.648). Ele só pode armazenar números inteiros (sem casas decimais).

Para declarar uma variável Long, você usa a declaração Dim (abreviação de Dimensão):

Dim lngA as Long

Em seguida, para atribuir um valor a uma variável, basta usar o sinal de igual:

lngA = 30000

Colocar isso em um procedimento tem a seguinte aparência:

Sub lngExamplo()
'declara a variável long
 Dim lngA as Long
'preencher a variável long
 lngA = 30000
'mostrar a caixa de mensagem
 MsgBox lngA
End Sub

Se você executar o código acima, a seguinte caixa de mensagem será exibida.

vba integer intexample msgbox

Tipo de Dados LongLong

O tipo de dados LongLong só está disponível na versão de 64 bits do Microsoft Office. Se você estiver executando uma versão de 32 bits do Office em um computador de 64 bits, esse tipo de dados não estará disponível. Ele suporta números no intervalo de -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807.

 Dim lngA as LongLong

Tipo de dados LongPtr

O LongPtr foi introduzido no VBA para dar suporte à versão de 64 bits do Microsoft Office. Em um sistema de 32 bits, ele é tratado como um Long e, em sistemas de 64 bits, é tratado como um LongLong.

Dim lngA as LongPtr

Observação: LongPtr não está disponível no Excel 2007 ou anterior.

Valores Decimais e Tipos de Dados Long

As variáveis Long não podem armazenar valores decimais. Se você passar um número decimal para um long, o número decimal será arredondado para remover o decimal.

Portanto, se você executasse o procedimento abaixo:

Sub LngExamploB()
'declarar a variável long
 Dim lngA as Long
'preencher a variável long
 lngA = 3524.12
'mostrar a caixa de mensagem
 MsgBox lngA
End Sub

O valor decimal seria arredondado para baixo, retornando a seguinte mensagem:

vba integer passing decimal round down msgbox

No entanto, este código abaixo:

Sub LngExamploB()
'declarar a variável long
 Dim lngA as Long
'preencher a variável long
 lngA = 3524.52
'mostrar a caixa de mensagem
 MsgBox lngA
 End Sub

Retornaria a seguinte caixa de mensagem (arredondando para cima):

vba integer passing decimal round up msgbox

Tipo de Dados Decimal / Duplo (Double)

Se quiser armazenar uma casa decimal, você precisará declarar uma variável que permita casas decimais. Há três tipos de dados que você pode usar: Single, Double ou Currency.

Dim sngPrice as Single
Dim dblPrice as Double
Dim curPrice as Currency

O tipo de dados Single arredondará o ponto decimal de forma ligeiramente diferente dos tipos de dados double e currency, portanto, é preferível usar double em vez de single para obter precisão. Um Double pode ter até 12 casas decimais, enquanto Currency e Single podem ter até 4 casas decimais.

variaveis single currency

Declarar uma Variável Long em Nível de Módulo ou Global

Nos exemplos anteriores, declaramos a variável Long em um procedimento. As variáveis declaradas com um procedimento só podem ser usadas dentro desse procedimento.

long nivel procedimento

Em vez disso, você pode declarar variáveis Long no nível do módulo ou global.

Nível de Módulo

As variáveis em nível de módulo são declaradas na parte superior dos módulos de código com a instrução Dim.

long nivel modulo

Essas variáveis podem ser usadas com qualquer procedimento nesse módulo de código.

Nível Global

As variáveis de nível global também são declaradas na parte superior dos módulos de código. Entretanto, em vez de usar a instrução Dim, use a instrução Public para indicar que a variável long está disponível para ser usada em todo o seu projeto VBA.

Public lngA as Long

long nivel global

Se você declarasse a variável long em um nível de módulo e depois tentasse usá-la em um módulo diferente, ocorreria um erro.

erro declaracao modulo

Entretanto, se você tivesse usado a palavra-chave Public para declarar a variável long, o erro não ocorreria e o procedimento seria executado perfeitamente.

Formatar Long Armazenado como String

Pode haver um momento em que você deseje formatar um tipo de dados Long em uma cadeia de caracteres – por exemplo, uma data ou talvez queira exibir um símbolo de moeda.

Para isso, você usa a função Format.

O procedimento a seguir:

Sub TesteLongParaString()
'declarar a variável string
Dim strData as string
'declarar a long e preencher o valor
Dim lngData as long
 lngData = 44055
'converta a long em uma string formatada como uma data
 strData = Format(lngData, "dd mmmm yyyy")
'visualizar o resultado
 MsgBox strData
End Sub

retornaria o resultado abaixo:

data formatada string

e o seguinte procedimento

Sub TestarLongParaStringMoeda()
'declarar a variável string
Dim strMoeda As String
'declarar a long e preencher o valor
Dim lngValor As Long
lngValor = 44055 
'converter a long em uma string com um símbolo de moeda
strMoeda = Format(lngValor, "$#,##0")
'visualizar o resultado
MsgBox strMoeda
End Sub

retornaria este resultado:

vba long convert to currency string

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