VBA – Tipo de Dados String (Dim Variable)

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on May 24, 2023

Tipo de Variável String

O tipo de dados String é um dos tipos de dados mais comuns no VBA. Ele armazena sequências de texto.

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

Dim strName as String

Para atribuir um valor a uma variável, use o sinal de igual:

strName = "Fred Smith"

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

Sub strExamplo()
'Declarar a string
   Dim strName as string
'preencher a string
    strName = "Fred Smith"
'mostrar a caixa de mensagens
   MsgBox strname
End Sub

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

vba string declare

Variável String Fixa

Na verdade, há dois tipos de variáveis de sequência de caracteres: fixa e variável.

A variável de texto “variável” (mostrada no exemplo anterior) permite que sua sequência tenha qualquer comprimento. Isso é o mais comum.

A variável de texto “fixa” define o tamanho da sequência . Uma sequência fixa pode conter até 65.400 caracteres.

Dim strName as string *20

Quando você define uma variável fixa, o número de caracteres na variável fica bloqueado, mesmo que você use menos caracteres.

Observe os espaços na imagem abaixo – a variável tem espaços reservados para o restante dos caracteres da sequência , pois “Fred Smith” tem menos de 20 caracteres.

string tamanho fixo

No entanto, se você tiver declarado uma sequência de caracteres sem especificar o comprimento, ela conterá apenas o número de caracteres que forem passados a ela.

string tamanho variavel

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

No exemplo anterior, você declarou a variável String em um procedimento. As variáveis declaradas com um procedimento só podem ser usadas dentro desse procedimento.

declaracao dentro procedimento

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

Nível do Módulo

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

declaracao 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, você usa a instrução Public para indicar que a variável de sequência de caracteres está disponível para ser usada em todo o seu projeto VBA.

Public strName as String

 

declaracao nivel global public

Se você declarasse a variável string em um nível de módulo e a usasse em um módulo diferente, ocorreria um erro.

erro compilacao declaracao

Entretanto, se você usar a palavra-chave Public para declarar a variável string, o erro não ocorrerá e o procedimento será executado perfeitamente.

Converter Valores Armazenados como String

Pode haver um momento em que você tenha valores no Excel que estejam armazenados como texto – por exemplo, você pode ter importado um arquivo CSV que pode ter trazido texto em vez de números.

Observe que o valor em A1 está alinhado à esquerda, indicando um valor de texto.

vba string text

Você pode usar uma Função VBA para converter esses números em texto

Sub ConverterValor()
Dim strQty As String, dblQty As Double
'preencher a string
    strQty = Range("A1")
'preencher a variavel double com a string
    dblQty = strQty
'preencher o intervalo com o número
    Range("A1") = dblQty
End Sub

Quando você executar o código, o número se moverá para a direita, indicando que agora está armazenado como um número.

vba string number

Isso é particularmente útil quando você percorre um grande intervalo de células.

vba string list

Sub ConverterValor()
    Dim strQty As String, dblQty As Double
    Dim rw As Integer, i As Integer
'contar as linhas a converter
    rw = Range("A1", Range("A1").End(xlDown)).Rows.Count
'percorrer as células e converter cada uma delas em um número
     For i = 0 To rw - 1
'populate the string
        strQty = Range("A1").Offset(i, 0)
'preencher a variavel double com a string
        dblQty = strQty
'preencher o intervalo com o número
        Range("A1").Offset(i, 0) = dblQty
    Next i
End Sub

O resultado será que todas as células serão convertidas em números

vba number list

Converter Strings Armazenadas como Valores

Da mesma forma, pode haver valores que você precise converter de uma sequência de caracteres em um valor – por exemplo, se você precisar de um zero à esquerda em um número de telefone.

vba string number to string

Sub ConverterString()
    Dim strPhone As String, dblPhone As Double
    Dim rw As Integer, i As Integer
'contar as linhas a converter
    rw = Range("A1", Range("A1").End(xlDown)).Rows.Count
'percorrer as células e converter cada uma delas em um número
    For i = 0 To rw - 1
'preencher a string
        dblPhone = Range("A1").Offset(i, 0)
'preencher a double com a string
        strPhone = "'0" & dblPhone
'preencher o intervalo com o número
        Range("A1").Offset(i, 0) = strphone
    Next i
End Sub

vba string number to string converted

Observe que você precisa iniciar a sequência de texto com um apóstrofo (‘), antes do zero, para que o Excel digite o valor como sequência de caracteres.

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