VBA RegEx - Como usar expressões regulares no VBA Excel? (Exemplos)

O que é RegEx no Excel VBA?

RegEx significa “ Expressão Regular ” no VBA Excel e é uma sequência de caracteres que define o padrão de pesquisa para encontrar um padrão específico de caracteres em uma string de valores. Em uma palavra simples, “podemos criar um padrão de expressão regular e usá-lo para pesquisar a string desse padrão”.

VBA RegEx é um modelo de objeto. Eu sei que é intimidante olhar para a explicação, mas a questão é que a natureza do objeto. Uma coisa que você precisa lembrar aqui é que o VBA RegEx (Expressão regular) é um objeto de função de texto como nossas outras funções de texto, “LEFT, RIGHT, MID.”

Como habilitar RegEx no Excel VBA?

Como eu disse à VBA, RegEx é um modelo de objeto em VBA, assim como nosso software externo como “MS Word” e “MS PowerPoint”. Da mesma forma, RegEx também é um Component Object Model (COM), que precisamos fazer referência no editor VBA. Para habilitar RegEx, siga as etapas abaixo.

Etapa 1: vá para o Editor do Visual Basic (Alt + F11)

Etapa 2: Vá para Ferramentas e referências.

Etapa 3: Agora, você verá referências ao Projeto VBA. Role para baixo e selecione “Microsoft VBScript Regular Expression 5.5”.

Etapa 4: Agora clique em OK. Podemos acessar esse objeto RegEx agora na codificação VBA.

Exemplo - Agora, vou mostrar um exemplo simples. Suponha que você tenha as palavras “Vendas 2019, Vendas 2018 e Vendas 2017”. Se você definir o padrão como (0 - 7), ele corresponde a todos os números entre 0 a 7, portanto, nossas correspondências serão 201, 201 e 2017 em cada string.

Padrão VBA RegEx

O padrão da função VBA RegEx parece intimidante e leva algum tempo para entender o padrão. Podemos ver dois tipos de sequência de caracteres aqui, um é "Caracteres literais" e o outro é "Metacaracteres".

  • Os caracteres literais procuram a correspondência exata da string fornecida. Por exemplo, a sequência literal de caracteres “EFG” simplesmente procura todas as correspondências de “EFG” no texto fornecido.
  • Metacaracteres nada mais são do que uma combinação de caracteres com significado exato no padrão RegEx. Isso é completamente diferente dos caracteres literais. É um grande tópico a ser coberto. Abaixo estão algumas das sintaxes importantes.
Sintaxe Descrição Exemplo Exemplo de correspondência
. Corresponde a qualquer caractere único da string de entrada. pt Animal. Pote, Coloque, Padrão
() Corresponde a qualquer caractere único entre o colchete de uma string de entrada. (pt) Corresponde a p ou t
(^) Corresponde a qualquer caractere único, não entre o colchete de uma string de entrada. (pt) Não corresponde a p ou t
(Primeiro último) Corresponde a qualquer caractere entre o intervalo fornecido no colchete. (0-9) Corresponde a qualquer dígito de 0 a 9
(az) Corresponde a qualquer caractere minúsculo de a a z
(AZ) Corresponde a qualquer caractere maiúsculo de A a Z
s Corresponde a qualquer caractere de espaço em branco. - Corresponde a espaço, nova linha ou caractere de tabulação
S Corresponde a qualquer caractere sem espaço em branco - Os caracteres correspondentes não são Espaço, Nova Linha ou Tabulação
d Corresponde a qualquer caractere de um único dígito. SE 5 VG 6 Jogos 5 e 6
D Corresponde a qualquer caractere único sem dígito SE 5 VG 6 Corresponde a SEVG

Propriedades e métodos do objeto RegEx

Como todos os nossos modelos de objeto, RegEx também tem suas próprias propriedades e métodos. Agora veremos um por um em detalhes.

Propriedades do objeto VBA Regex

  • Padrão: usado para corresponder à string fornecida.
  • Ignorar maiúsculas e minúsculas : ignora caracteres maiúsculos e minúsculos.
  • Global: Se você quiser encontrar todas as correspondências no padrão, TRUE é o argumento, ou então a primeira correspondência será encontrada.
  • Multi-Line: se você deseja encontrar através de novas quebras de linha, você pode usar isto.

Métodos do objeto RegEx

  • Teste: serve para testar se o padrão pode ser encontrado na string fornecida. Isso retornará TRUE se encontrado ou então FALSE.
  • Executar: Isso retornará todas as correspondências do padrão em relação à string de localização.
  • Substituir: Isso substituirá a string de pesquisa pela nova string.

Exemplo de RegEx em VBA Excel

Agora dê uma olhada no exemplo de código VBA abaixo.

Código:

Sub RegEx_Example () Dim RegEx como objeto, MyString As String Definir RegEx = CreateObject ("VBScript.RegExp") With RegEx .Pattern = "(0-9) +" End With MyString = "Data de nascimento ano é 1985" MsgBox RegEx .Test (MyString) MyString = "Data do ano de nascimento é ???" MsgBox RegEx.Test (MyString) End Sub

regular

No código acima, definimos o padrão para pesquisar o número de 0 a 9 da seguinte maneira.

Com RegEx .Pattern = "(0-9) +" Terminar com

Então a variável MyString = “Data do ano de nascimento é 1985” que contém os valores de 0 a 9, então nossa caixa de mensagem retornará TRUE.

MyString = “Data de nascimento ano é ???” não tem nenhum número de 0 a 9, então retornará FALSE como resultado das caixas de mensagem.

Artigos interessantes...