O VBA tem muitas funções de string que permitirão que você manipule e trabalhe com texto e strings em seu código. Neste tutorial, vamos cobrir funções que permitirão a você extrair substrings de strings, remover espaços de strings, converter a caixa de um texto ou string, comparar strings e outras funções de string úteis.
Extraindo um Substring
A função VBA Left String
A função VBA Left permite que você extraia uma substring de um texto ou string começando do lado esquerdo. A sintaxe da função VBA Left String é:
Left (String, Num_of_characters) onde:
- String - o texto original.
- Num_of_characters - 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 String para extrair os primeiros quatro caracteres da string fornecida:
1234567891011 | Sub UsingTheLeftStringFunction ()Dim valueOne As StringDim valueTwo As StringvalueOne = "AutomateExcel"valueTwo = Left (valueOne, 4)Valor MsgBox doisEnd Sub |
O resultado é:
A função Left extraiu as primeiras quatro letras de AutomateExcel, que são Auto.
A função de string direita do VBA
A função VBA Right permite que você extraia uma substring de um texto ou string começando do lado direito. A sintaxe da função Right String do VBA é:
Right (String, Num_of_characters) onde:
- String - o texto original.
- Num_of_characters - 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 Right String para extrair os últimos quatro caracteres da string:
1234567891011 | Sub UsingTheRightStringFunction ()Dim valueOne As StringDim valueTwo As StringvalueOne = "AutomateExcel"valueTwo = Right (valueOne, 4)Valor MsgBox doisEnd Sub |
O resultado é:
A função certa extraiu as últimas quatro letras do AutomateExcel, que são xcel.
A função VBA Mid String
A função VBA Mid permite que você extraia uma substring de um texto ou string, começando de qualquer posição dentro da string que você especificar. A sintaxe da função VBA Mid String é:
Mid (String, Starting_position, [Num_of_characters]) onde:
- String - o texto original.
- Posição_de_inicio - A posição no texto original, de onde a função começará a extrair.
- Num_of_characters (Opcional) - Um inteiro que especifica o número de caracteres a serem extraídos do texto original começando na posição_de_inicio. Se estiver em branco, a função MID retornará todos os caracteres da posição_inicial.
O código a seguir mostra como usar a função Mid String para extrair quatro caracteres, começando da segunda posição ou caractere na string:
1234567891011 | Sub UsingTheMidStringFunction ()Dim valueOne As StringDim valueTwo As StringvalueOne = "AutomateExcel"valueTwo = Mid (valueOne, 2, 4)Valor MsgBox doisEnd 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 são utom.
Encontrando a posição de um substring
A função VBA Instr String
A função VBA Instr retorna a posição inicial de uma substring dentro de outra string. Esta função diferencia maiúsculas de minúsculas. A sintaxe da função VBA Instr String é:
Instr ([Start], String, Substring, [Compare]) onde:
- Começar (Opcional) - Isso especifica a posição inicial da função a partir da qual pesquisar. Se em branco, o valor padrão de 1 é usado.
- String - o texto original.
- Substring- A substring dentro do texto original cuja posição você deseja encontrar.
- Comparar (Opcional)- Isso especifica o tipo de comparação a ser feita. Se em branco, a comparação binária é usada.
-vbBinaryCompare - Comparação binária (maiúsculas e minúsculas são consideradas diferentes)
-vbTextCompare - Comparação de texto (maiúsculas e minúsculas são consideradas iguais)
-vbDatabaseCompare - Comparação de banco de dados (esta opção é usada apenas no Microsoft Access e é uma comparação baseada no banco de dados)
O código a seguir mostra como usar a função Instr String para determinar a primeira ocorrência da substring “Th” dentro da string principal:
123456789101112 | Sub UsingTheInstrStringFunction ()Dim valueOne As StringDim positionofSubstring As IntegervalueOne = "Este é o texto"positionofSubstring = InStr (1, valueOne, "Th")Debug.Print positionofSubstringEnd Sub |
O resultado (enviado para a janela imediata) é:
A função Instr retornou a posição da primeira ocorrência da substring “Th” que é 1. Observe que esta função inclui os espaços na contagem.
A função de string VBA InstrRev
A função VBA InstrRev retorna a posição inicial de uma substring dentro de outra string, mas começa a contar a posição, a partir do final da string. Esta função diferencia maiúsculas de minúsculas. A sintaxe da função de string VBA InstrRev é:
InstrRev (String, Substring, [Start], [Compare]) onde:
- String - o texto original.
- Substring- A substring dentro do texto original cuja posição você deseja encontrar.
- Começar (Opcional) - Especifica a posição a partir da qual iniciar a pesquisa. Se estiver em branco, a função começa a pesquisar a partir do último caractere.
- Comparar (Opcional)- Isso especifica o tipo de comparação a ser feita. Se em branco, a comparação binária é usada.
-vbBinaryCompare - Comparação binária (maiúsculas e minúsculas são consideradas diferentes)
-vbTextCompare - Comparação de texto (maiúsculas e minúsculas são consideradas iguais)
-vbDatabaseCompare - Comparação de banco de dados (esta opção é usada apenas no Microsoft Access e é uma comparação baseada no banco de dados)
O código a seguir mostra como usar a função de string InstrRev para determinar a primeira ocorrência da substring “Th” dentro da string principal, começando do final da string:
1234567891011 | Sub UsingTheInstrRevStringFunction ()Dim valueOne As StringDim positionofSubstring As IntegervalueOne = "Este é o texto"positionofSubstring = InStrRev (valueOne, "Th")Debug.Print positionofSubstringEnd Sub |
O resultado é enviado para a janela imediata:
A função InstrRev retornou a posição da primeira ocorrência da substring “Th”, mas iniciando a contagem do final que é 9. Observe que esta função inclui os espaços na contagem.
Removendo espaços de uma string
A função VBA LTrim String
A função VBA LTrim remove todos os espaços iniciais de um texto ou string. A sintaxe da função VBA LTrim String é:
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 à esquerda na string fornecida:
123456789101112 | Sub UsingTheLTrimStringFunction ()Dim valueOne As StringDim valueTwo As StringvalueOne = "Este é o endereço do site https://easyexcel.net/excel/"valueTwo = LTrim (valueOne)MsgBox valueOneValor MsgBox doisEnd Sub |
Os resultados são:
A função LTrim removeu os espaços iniciais para valuetwo, que é mostrado na segunda caixa de mensagem.
A função de string VBA RTrim
A função VBA RTrim remove todos os espaços à direita de um texto ou string. A sintaxe da função VBA RTrim String é:
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 finais na string fornecida:
123456789101112 | Sub UsingTheRTrimStringFunction ()Dim valueOne As StringDim valueTwo As StringvalueOne = "Este é o endereço do site https://easyexcel.net/excel/"valueTwo = RTrim (valueOne)MsgBox valueOneValor MsgBox doisEnd Sub |
Os resultados entregues são:
A função RTrim removeu os espaços finais para valuetwo, que é mostrado na segunda caixa de mensagem.
A função VBA Trim String
A função de corte do VBA remove todos os espaços à esquerda e à direita de um texto ou string. A sintaxe da função VBA Trim String é:
Trim (String) onde:
- String - o texto original.
O código a seguir mostra como usar a função de corte do VBA para remover os espaços à esquerda e à direita na string fornecida:
123456789101112 | Sub UsingTheTrimStringFunction ()Dim valueOne As StringDim valueTwo As StringvalueOne = "Este é o endereço do site https://easyexcel.net/excel/"valueTwo = Trim (valueOne)MsgBox valueOneValor MsgBox doisEnd Sub |
Os resultados são:
A função Trim removeu os espaços à esquerda e à direita para valuetwo, que é mostrado na segunda caixa de mensagem.
Funções VBA Case
A função de string VBA LCase
A função VBA LCase converte letras em um texto ou string em minúsculas. A sintaxe da Função String VBA LCase é:
LCase (String) onde:
- String - o texto original.
O código a seguir mostra como usar a função de string LCase para converter todas as letras na string fornecida para minúsculas:
1234567891011 | Sub UsingTheLCaseStringFunction ()Dim valueOne As StringDim valueTwo As StringvalueOne = "ESTE É O PRODUTO"valueTwo = LCase (valueOne)Valor MsgBox doisEnd Sub |
O resultado é:
A função LCase converteu todas as letras da string em minúsculas.
A função de string VBA UCase
A função VBA UCase converte letras em um texto ou string em maiúsculas. A sintaxe da função de string VBA UCase é:
UCase (String) onde:
- String - o texto original.
O código a seguir mostra como usar a função String UCase para converter todas as letras na string fornecida para maiúsculas:
1234567891011 | Sub UsingTheUCaseStringFunction ()Dim valueOne As StringDim valueTwo As StringvalueOne = "este é o produto"valueTwo = UCase (valueOne)Valor MsgBox doisEnd Sub |
O resultado é:
A função UCase converteu todas as letras da string em maiúsculas.
A função VBA StrConv
A função VBA StrConv pode converter letras em um texto ou string em maiúsculas, minúsculas, maiúsculas ou unicode, dependendo do tipo de conversão que você especificar. A sintaxe da função de string VBA StrConv é:
StrConv (String, Conversion, [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, o sistema LocaleID será usado.
O código a seguir mostra como usar a função StrConv String para converter a string para maiúsculas e minúsculas:
1234567891011 | Sub UsingTheStrConvStringFunction ()Dim valueOne As StringDim valueTwo As StringvalueOne = "este é O produto"valueTwo = StrConv (valueOne, vbProperCase)Valor MsgBox doisEnd Sub |
O resultado é:
Você especifica o tipo de conversão que deseja realizar usando o parâmetro de conversão:
- vbLowerCase converte todas as letras do texto em minúsculas.
- vbUpperCase converte todas as letras do texto em maiúsculas.
- vbProperCase converte a primeira letra de cada palavra no texto em maiúsculas, enquanto todas as outras letras são mantidas em minúsculas.
- vbUnicode converte uma string em Unicode.
- vbFromUnicode converte uma string de Unicode para a página de código padrão do sistema.
Comparando Strings
A função VBA StrComp
A função VBA StrComp String permite comparar duas strings. A função retorna:
- 0 se as duas strings corresponderem
- -1 se string1 for menor que string2
- 1 se string1 for maior que string2
- Um valor nulo se alguma das strings for Nula
O código a seguir mostra como usar a função StrComp para comparar duas strings:
123456789101112 | Sub UsingTheStrCompStringFunction ()Dim valueOne As StringDim valueTwo As StringDim resultofComparison As IntegervalueOne = "AutomateExcel"valueTwo = "AutomateExcel"resultofComparison = StrComp (valueOne, valueTwo)Debug.Print resultofComparisonEnd Sub |
O resultado é:
A função StrComp encontrou uma correspondência exata entre as duas strings e retornou 0.
O operador semelhante ao VBA
O VBA Like Operator permite comparar um texto ou string a um padrão e ver se há uma correspondência. Normalmente, você usaria o Operador Like em conjunto com curingas. O código a seguir mostra como usar o Operador Like:
123456789101112 | Sub UsingTheLikeOperatorInVBA ()Dim valueOne As StringvalueOne = "Vamos ver o resultado"Se valueOne gostar de "* view *" EntãoMsgBox "Há uma correspondência, esta string contém a palavra view"OutroMsgBox "Nenhuma correspondência foi encontrada"Fim seEnd Sub |
O resultado é:
Os curingas que você pode usar com o Operador Like para encontrar correspondências de padrão 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? curinga para corresponder a um padrão em seu código:
123456789101112 | Sub UsingTheLikeOperatorWithAWildcardInVBA ()Dim valueOne As StringvalueOne = "O"Se valueOne Like "?? e" EntãoMsgBox "Há uma correspondência, um padrão correspondente foi encontrado"OutroMsgBox "Nenhuma correspondência foi encontrada"Fim seEnd Sub |
O resultado entregue é:
Outras funções úteis de string VBA
A função de substituição de string do VBA
A função de substituição do VBA substitui um conjunto de caracteres em uma string por outro conjunto de caracteres. A sintaxe da função de string de substituição do VBA é:
Replace (String, Find, Replace, [Start], [Count], [Compare]) onde:
- String - o texto original.
- Localizar - a substring a ser pesquisada no texto original.
- Substituir - a substring pela qual substituir a substring Find.
- Começar (Opcional)- A posição para começar a pesquisar a partir do texto original. Se em branco, o valor de 1 é usado e a função começa na posição do primeiro caractere.
- Contar (Opcional)- O número de ocorrências da substring Find no texto original para substituir. Se estiver em branco, todas as ocorrências da substring Find são substituídas.
- Comparar (Opcional)- Isso especifica o tipo de comparação a ser feita. Se em branco, a comparação binária é usada.
-vbBinaryCompare - comparação binária
-vbTextCompare - Comparação de texto
-vbDatabaseCompare - Comparação de banco de dados (esta opção é usada apenas no Microsoft Access e é uma comparação baseada no banco de dados).
O código a seguir mostra como usar a função Replace String:
1234567891011 | Sub UsingTheReplaceStringFunction ()Dim valueOne As StringDim valueTwo As StringvalueOne = "ProductABC"valueTwo = Substituir (valueOne, "ABC", "XYZ")Valor MsgBox doisEnd Sub |
O resultado é:
A função Substituir encontrou a substring ABC no ProductABC e a substituiu pela substring XYZ.
A função VBA StrReverse
A função VBA StrReverse inverte os caracteres em um determinado texto ou string. A sintaxe da função VBA StrReverse String é:
StrReverse (String) onde:
- String - o texto original.
O código a seguir mostra como usar a função VBA StrReverse para inverter os caracteres na string Product:
1234567891011 | Sub UsingTheStrReverseStringFunction ()Dim valueOne As StringDim valueTwo As StringvalueOne = "Produto"valueTwo = StrReverse (valueOne)Valor MsgBox doisEnd Sub |
O resultado é:
A função VBA Len String
A função VBA Len retorna o número de caracteres em uma string de texto. A sintaxe da função VBA Len String é:
Len (string) onde:
- String - o texto original.
O código a seguir mostra como usar a função Len String para determinar o comprimento da string AutomateExcel:
1234567891011 | Sub UsingTheLenFunction ()Dim valueOne As StringDim stringLength As IntegervalueOne = "AutomateExcel"stringLength = Len (valueOne)Debug.Print stringLengthEnd Sub |
O resultado é:
A função Len contou todos os caracteres do texto AutomateExcel, que tem 13 letras.