VBA Funções de Texto
In this Article
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 é:
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 é:
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:
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:
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:
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:
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.