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.
