Funções VBA Strings e Substrings

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.

wave wave wave wave wave