VBA Funções de Texto

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on April 10, 2023

VBA tem muitas funções de texto que lhe permitirão manipular e trabalhar com texto e strings em seu código. Neste tutorial, vamos cobrir funções que lhe permitirão extrair partes de strings, remover espaços de strings, converter maiúsculas e minúsculas  de um texto ou string, comparar strings e outras funções de string úteis.

Extração de Parte de um Texto

A Função de Texto VBA Esquerda

A função LEFT do VBA permite extrair uma parte de um texto ou string a partir do lado esquerdo. A sintaxe da Função de String Left VBA é:

Left(String, Número_de_Caracteres) onde:

  • String – O texto original.
  • Número_de_Caracteres Um número inteiro que especifica o número de caracteres a serem extraídos do texto original, começando do início.

O código a seguir mostra como usar a função Left para extrair os primeiros quatro caracteres sequência dada:

Sub Usando_Funcao_LEFT()

Dim valorUm As String
Dim valorDois As String

valorUm = "AutomateExcel"
valorDois  = Left(valorUm, 4)

MsgBox valorDois

End Sub

O resultado é:

How to Use the Left String Function in VBA

A Função Left extraiu as primeiras quatro letras do AutomateExcel, que são Auto.

A Função de Texto VBA Direita

A função VBA Right permite extrair uma parte de um texto ou string a partir do lado direito. A sintaxe da Função Right do VBA é:

Right(String, Número_de_caracteres) onde:

  • String – O texto original.
  • Número_de_caracteres Um número inteiro que especifica o número de caracteres a serem extraídos do texto original a partir do final.

O código a seguir mostra como usar a função de texto Right para extrair os últimos quatro caracteres do texto:

Sub Usando_Funcao_RIGHT()

Dim valorUm As String
Dim valorDois As String

valorUm = "AutomateExcel"
valorDois = Right(valorUm, 4)

MsgBox valorDois

End Sub

O resultado é:

Using the Right String Function in VBA

A função Right extraiu as últimas quatro letras do AutomateExcel, que são xcel.

A Função de Texto VBA Mid

A função VBA Mid permite extrair uma parte de um texto ou string, começando de qualquer posição dentro da string que você especificar. A sintaxe da Função Mid VBA é:

Mid(String, Posição_Início, [Número_de_Caracteres]) onde:

  • String – O texto original.
  • Posição_Início – A posição no texto original, de onde a função começará a extrair.
  • Número_de_Caracteres(Opcional)Um inteiro que especifica o número de caracteres a serem extraídos do texto original a partir da Posição_Início . Se estiver em branco, a Função MID retornará todos os caracteres a partir da Posição_Início.

O código a seguir mostra como usar a Função Mid para extrair quatro caracteres, começando da segunda posição ou caractere da sequência:

Sub Usando_Funcao_MID()

Dim valorUm As String
Dim valorDois As String

valorUm = "AutomateExcel"
valorDois = Mid(valorUm, 2, 4)

MsgBox valorDois

End Sub

O resultado é enviado para um msgbox:

Using the Mid String Function in VBA

A Função Mid extraiu as quatro letras do AutomateExcel a partir do segundo caractere/posição/letra que estão utom.

Encontrando a Posição de uma Substring

A Função de Texto VBA Instr

A função VBA Instr retorna a posição inicial de uma parte do texto dentro de outro texto. Esta função é sensível a maiúsculas e minúsculas. A sintaxe da função de texto VBA Instr é:

Instr([Início], String, Substring, [Comparar]) onde:

  • Início (Opcional) – Especifica a posição inicial para a função a ser pesquisada. Se estiver em branco, é usado o valor padrão de 1.
  • String – O texto original.
  • Substring – A parte dentro do texto original do qual se deseja encontrar a posição.
  • Comparar (Opcional) – Especifica o tipo de comparação a ser feita. Se estiver em branco, é usada a comparação binária.

-vbBBinaryCompare – Comparação binária (Maiúsculas e minúsculas são consideradas como diferentes)
-vbTextCompare – Comparação de texto (Maiúsculas e minúsculas são consideradas como as mesmas)
-vbDatabaseCompare – Comparação de banco de dados (Esta opção é usada somente no Microsoft Access, e é uma comparação baseada no banco de dados)

O código a seguir mostra como usar a função de texto Instr para determinar a primeira ocorrência do trecho “Th” dentro do texto principal:

Sub Usando_Funcao_INSTR()

Dim valorUm As String
Dim posicaoDoTrecho As Integer

valorUm = "This is The Text "
posicaoDoTrecho = InStr(1, valorUm, "Th")

Debug.Print posicaoDoTrecho


End Sub

O resultado (enviado para a Janela Verificação Imediata) é:

A função Instr devolveu a posição da primeira ocorrência do trecho “Th” que é 1. Note que esta função inclui os espaços na contagem.

A Função de Texto VBA InstrRev

A função VBA InstrRev retorna a posição inicial de um trecho dentro de uma sequência, mas começa a contar a posição a partir do final do texto. Esta função é sensível a maiúsculas e minúsculas. A sintaxe da função VBA InstrRev é:

InstrRev(String, Substring, [Início], [Comparar]) onde:

  • String – O texto original.
  • Substring O trecho dentro do texto original do qual você quer encontrar a posição.
  • Início (Opcional) – Especifica a posição a partir da qual você deseja começar a procurar. Se estiver em branco, a função começa a procurar a partir do último caractere.
  • Comparar(Opcional) – Especifica o tipo de comparação a ser feita. Se estiver em branco, é usada a comparação binária.

-vbBBinaryCompare – Comparação binária (Maiúsculas e minúsculas são consideradas como diferentes)
-vbTextCompare – Comparação de texto (Maiúsculas e minúsculas são consideradas como as mesmas)
-vbDatabaseCompare – Comparação de banco de dados (Esta opção é usada somente no Microsoft Access, e é uma comparação baseada no banco de dados)

O código a seguir mostra como usar a função InstrRev para determinar a primeira ocorrência do substrato “Th” dentro da sequência, começando do final do texto:

Sub Usando_Funcao_InstrREV()

Dim ValorUm As String
Dim posicaoDoTrecho As Integer

valorUm = "This is The Text "
posicaoDoTrecho = InStrRev(valorUm, "Th")

Debug.Print posicaoDoTrecho

End Sub

O resultado é enviado para a Janela Imediata:

A função InstrRev devolveu a posição da primeira ocorrência do substrato “Th”, mas iniciando a contagem a partir do final que é 9. Note que esta função inclui os espaços na contagem.

Remoção de Espaços de uma String

A Função de Texto VBA LTrim

A função VBA LTrim remove todos os espaços no início de um texto ou string. A sintaxe da Função String do VBA LTrim é:

LTrim(String) onde:

  • String – O texto original.

O código a seguir mostra como usar a função VBA LTrim para remover os espaços no início de uma sequência de texto:

Sub Usando_Funcao_LTRIM()

Dim valorUm As String
Dim valorDois As String

valorUm = "         This is the website adddress https://www.automateexcel.com/excel/"
valorDois = LTrim(valorUm)

MsgBox valorUm
MsgBox valorDois

End Sub

Os resultados são:

String With Leading Spaces

Using the LTrim String Function To Remove Leading Spaces

A função LTrim removeu os espaços no início de valorDois, que é mostrado na segunda Caixa de Mensagens.

A Função de Texto VBA RTrim

A função VBA RTrim remove todos os espaços ao final de um texto ou string. A sintaxe da Função String do VBA RTrim é:

RTrim(String) onde:

  • String – O texto original.

O código a seguir mostra como usar a função VBA RTrim para remover os espaços ao final da sequência de texto dada:

Sub Usando_Funcao_RTRIM()

Dim valorUm As String
Dim valorDois As String

valorUm = "This is the website adddress https://www.automateexcel.com/excel/               "
valorDois = RTrim(valorUm)

MsgBox valorUm
MsgBox valorDois

End Sub

Os resultados entregues são:
Message box With Trailing Spaces

Using The RTrim String Function

A função RTrim removeu os espaços ao final de valorDois, que é mostrado na segunda Caixa de Mensagens.

A Função de Texto VBA Trim

A função VBA Trim retira todos os espaços iniciais e finais de um texto ou string. A sintaxe da Função VBA Trim é:

Trim(String) onde:

  • String – O texto original.

O código a seguir mostra como usar a função VBA Trim para remover os espaços iniciais e finais da sequência de texto dada:

Sub Usando_Funcao_TRIM()
Dim valorUm As String
Dim valorDois As String

valorUm = "           This is the website adddress https://www.automateexcel.com/excel/             "
valorDois = Trim(valorUm)

MsgBox valorUm
MsgBox valorDois

End Sub

Os resultados são:
Message box With Leading And Trailing Spaces

Using The Trim Function in VBA

A Função Trim removeu os espaços no início e no final do valorDois, que é mostrado na segunda Caixa de Mensagens.

Funções VBA Maiúsculas e Minúsculas

A Função de Texto VBA LCase

A função VBA LCase converte letras em um texto ou string para minúsculas. A sintaxe da Função VBA LCase é:

LCase(String) onde:

  • String – O texto original.

O código a seguir mostra como usar a Função LCase para converter todas as letras da cadeia dada em minúsculas:

Sub Usando_Funcao_LCASE()

Dim valorUm As String
Dim valorDois As String

valorUm = "ESTE É O PRODUTO"
valorDois = LCase(valorUm)

MsgBox valorDois

End Sub

O resultado é:

A Função LCase converteu todas as letras da sequência para minúsculas.

A Função de Texto VBA UCase

A função VBA UCase converte letras em um texto ou string para maiúsculas. A sintaxe da Função VBA UCase é:

UCase(String) onde:

  • String – O texto original.

O código a seguir mostra como usar a Função UCase para converter todas as letras da sequência dada em maiúsculas:

Sub Usando_Funcao_UCASE()

Dim valorUm As String
Dim valorDois As String

valorUm = "este é o produto"
valorDois = UCase(valorUm)

MsgBox valorDois

End Sub

O resultado é:

A função UCase converteu todas as letras da sequência para maiúsculas.

A Função VBA StrConv

A função VBA StrConv pode converter letras em um texto ou string para maiúsculas, minúsculas, primeiras maiúsculas ou unicode, dependendo do tipo de conversão que você especificar. A sintaxe da Função StrConv VBA String é:

StrConv(String, Conversão, [LCID]) onde:

  • String – O texto original.
  • Conversão – O tipo de conversão que você deseja.
  • [LCID](Opcional) – Um parâmetro opcional que especifica o LocaleID. Se estiver em branco, é usado o sistema LocaleID.

O código a seguir mostra como usar a função StrConv String para converter a string em caso apropriado:

Sub Usando_Funcao_StrConv()

Dim valorUm As String
Dim valorDois As String

valorUm = "ESTE é o PRODUTO"
valorDois = StrConv(valorUm, vbProperCase)

MsgBox valorDois

End Sub

O resultado é:

Você especifica o tipo de conversão que você deseja realizar usando o parâmetro de conversão:

  • vbLowerCase converte todas as letras do texto para minúsculas.
  • vbUpperCase converte todas as letras do texto para maiúsculas.
  • vbProperCase converte a primeira letra de cada palavra no texto para maiúscula, enquanto todas as outras letras são mantidas como minúsculas.
  • vbUnicode converte uma cadeia de caracteres em unicode.
  • vbFromUnicode converte uma cadeia de caracteres de unicode para a página de código padrão do sistema.

Comparação de Strings

A Função VBA StrComp

A função VBA StrComp  permite comparar duas strings. A função retorna:

  • 0 se as duas sequências coincidirem
  • -1 se a string1 for menor que a string2
  • 1 se a string1 for maior que a string2
  • Um valor nulo se uma das sequências for Nula

O código a seguir mostra como usar a função StrComp para comparar duas cordas:

Sub Usando_Funcao_StrComp()

Dim valorUm As String
Dim valorDois As String
Dim ResultadoDaComparacao As Integer

valorUm = "AutomateExcel"
valorDois = "AutomateExcel"
ResultadoDaComparacao = StrComp(valorUm, valorDois)
Debug.Print ResultadoDaComparacao

End Sub

O resultado é:

A função StrComp encontrou uma correspondência exata entre as duas sequências e retornou 0.

O Operador VBA Like

O Operador VBA Like permite que você compare um texto ou string com um padrão e veja se há uma correspondência. Você normalmente usaria o Operador Like em conjunto com caracteres curinga. O código a seguir mostra como usar o Operador Like:

Sub Usando_Operador_Like()

Dim valorUm As String
valorUm = "Vamos ver a saída"

If valorUm Like "*ver*" Then
MsgBox "Existe coincidência, esta string contém a palavra ver"
Else
MsgBox "Não há coincidência"
End If

End Sub

O resultado é:

Os caracteres curinga que você pode usar com o operador Like para encontrar correspondências de padrões incluem:

  • ? que corresponde a um único caractere
  • # que corresponde a um único dígito
  • * que corresponde a zero ou mais caracteres

O código a seguir mostra como você usaria o operador Like e o caractere curinga “?” para corresponder a um padrão em seu código:

Sub Usando_Operador_Like_Com_Curinga()

Dim valorUm As String
valorUm = "Esse"

If valorUm Like "???e" Then
MsgBox "Existe coincidência, o padrão foi encontrado"
Else
MsgBox "Nenhuma correspondência foi encontrada"
End If

End Sub

O resultado entregue é:

Outras Funções VBA de Strings Úteis

A Função VBA Replace

A Função VBA Replace substitui um conjunto de caracteres em uma sequência por outro conjunto de caracteres. A sintaxe da Função VBA Replace:

Replace (String, Find, Replace, [Start], [Count], [Compare]) onde:

  • String – O texto original.
  • Find – O trecho a ser pesquisado dentro do texto original.
  • Replace – O trecho para substituir o trecho em Find.
  • Start(Opcional) – A posição a partir da qual iniciar a busca de texto original. Se estiver em branco, o valor 1 é usado e a função começa na posição do primeiro caractere.
  • Count(Opcional) – O número de ocorrências do substring Find no texto original a ser substituído. Se estiver em branco, todas as ocorrências da subestrutura de Find são substituídas.
  • Compare(Opcional) – Especifica o tipo de comparação a ser feita. Se estiver em branco, é usada a comparação binária.

    -vbBBinaryCompare – Comparação binária
    -vbTextCompare – Comparação de texto
    -vbDatabaseCompare – Comparação de banco de dados (Esta opção é usada somente no Microsoft Access, e é uma comparação baseada no banco de dados)

O código a seguir mostra como usar a Função de Texto Replace:

Sub Usando_Funcao_Replace()

Dim valorUm As String
Dim valorDois As String

valorUm = "ProdutoABC"
valorDois = Replace(valorUm, "ABC", "XYZ")

MsgBox valorDois

End Sub

O resultado é:

A função Replace encontrou o trecho ABC dentro do ProdutoABC e o substituiu pelo texto XYZ.

A Função VBA StrReverse

A função VBA StrReverse inverte os caracteres de um determinado texto ou string. A sintaxe da Função StrReverse  é:

StrReverse(String) onde:

  • String – O texto original.

O código a seguir mostra como usar a Função StrReverse VBA para inverter os caracteres da String “Produto”:

Sub Usando_Funcao_StrReverse()

Dim valorUm As String
Dim valorDois As String

valorUm = "Produto"
valorDois = StrReverse(valorUm)

MsgBox valorDois

End Sub

O resultado é:

A Função VBA Len

A função VBA Len retorna o número de caracteres em uma sequência de texto. A sintaxe da Função Len é:

Len(String) onde:

  • String – O texto original.

O código a seguir mostra como usar a função Len para determinar o comprimento do texto AutomateExcel:

Sub Usando_Funcao_LEN()

Dim valorUm As String
Dim ComprimentoTexto As Integer

valorUm = "AutomateExcel"
ComprimentoTexto = Len(valorUm)
Debug.Print ComprimentoTexto 


End Sub

O resultado é:

A Função Len contou todos os caracteres do texto AutomateExcel, que é de 13 letras.

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