Função Regex VBA no Excel - Expressões Regulares

MR
Marcos Rieper

Especialista em Excel

08 de setembro de 2021 Atualizado 08 de julho de 2026 4 min de leitura
Função-Regex-VBA-no-Excel---Expressões-Regulares

Veja como usar a função Regex no Excel à partir do VBA para retornar expressões regulares de células.

Expressões regulares são padrões de strings dentro de outra string.

Por exemplo, digamos que queira extrair somente o e-mail do texto: O meu e-mail é Vendas.Lojas123@acme.com.br, aguardo seu contato.

Para extrair o e-mail de textos como este ou qualquer texto podemos fazer uso de expressões regulares, este tipo de funcionalidade está presente em várias linguagens e podemos usá-la também no VBA.

Como Criar uma função Regex VBA no Excel

O Regex não está entre as funções do Excel, por isso iremos colocar no VBA esta função própria.

Esta função ficará disponível apenas na planilha que você colocar, ou senão pode ser instalada na planilha pessoal, que pode ver conforme no link abaixo também.

Pressione ALT+F11 ou siga o procedimento Habilitar Guia Desenvolvedor.

No Visual Basic Editor clique na guia Ferramentas->Referências

Nas referências marque a biblioteca Microsoft VBScript Regular Expressions 5.5.

Esta é a biblioteca das expressões regulares do VBScript.

Feito isso já podemos colocar a função.

Clique em Inserir->Módulo e no módulo incluso cole o seguinte texto, que é referente a função Regex.

Função criada por Patrick Bökler no link: https://stackoverflow.com/questions/22542834/how-to-use-regular-expressions-regex-in-microsoft-excel-both-in-cell-and-loops

Function regex(strInput As String, matchPattern As String, Optional ByVal outputPattern As String = "$0") As Variant
    Dim inputRegexObj As New VBScript_RegExp_55.RegExp, outputRegexObj As New VBScript_RegExp_55.RegExp, outReplaceRegexObj As New VBScript_RegExp_55.RegExp
    Dim inputMatches As Object, replaceMatches As Object, replaceMatch As Object
    Dim replaceNumber As Integer

    With inputRegexObj
        .Global = True
        .MultiLine = True
        .IgnoreCase = False
        .Pattern = matchPattern
    End With
    With outputRegexObj
        .Global = True
        .MultiLine = True
        .IgnoreCase = False
        .Pattern = "\$(\d+)"
    End With
    With outReplaceRegexObj
        .Global = True
        .MultiLine = True
        .IgnoreCase = False
    End With

    Set inputMatches = inputRegexObj.Execute(strInput)
    If inputMatches.Count = 0 Then
        regex = False
    Else
        Set replaceMatches = outputRegexObj.Execute(outputPattern)
        For Each replaceMatch In replaceMatches
            replaceNumber = replaceMatch.SubMatches(0)
            outReplaceRegexObj.Pattern = "\$" & replaceNumber

            If replaceNumber = 0 Then
                outputPattern = outReplaceRegexObj.Replace(outputPattern, inputMatches(0).Value)
            Else
                If replaceNumber > inputMatches(0).SubMatches.Count Then
                    regex = CVErr(xlErrValue)
                    Exit Function
                Else
                    outputPattern = outReplaceRegexObj.Replace(outputPattern, inputMatches(0).SubMatches(replaceNumber - 1))
                End If
            End If
        Next
        regex = outputPattern
    End If
End Function

Com isso nós já temos a função regex pronta para você poder utilizar.

Como Usar a Função Regex no Excel

Veja algumas sintaxes:

ExpressãoExplicação
.Qualquer caracter
*Qualquer quantidade
[0-9]Qualquer número
[0-9]{7}Conjunto de 7 números
[0-9]+Conjunto numérico com qualquer quantidade
[0-9]+:[0-9]+Exemplo de expressão para extrair horário
\wQualquer caractere alfabético
[a-z]Qualquer letra minúscula do alfabeto
[A-Z] Qualquer letra maiúscula do alfabeto
\dQualquer dígito decimal entre 0 e 9
\rRepresenta a quebra de linha
{n}Repete uma determinada quantidade de vezes
Extrair o usuário: O usuário JOAQUIM123465 está ativo[\w]*[0-9]+ :JOAQUIM123465
Extrair o valor: Vendemos no total hoje 1565,99 litros de desinfetante[0-9.,]+ :1565,99
Extrair o e-mail: teste Vendas123456.Teste@gmail.com abcde\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)* : Vendas123456.Teste@gmail.com
Extrair o conjunto numérico: asdfasdf 1234678970 testes teste[0-9]+
Extrair a hora: agora são 09:35 h da tarde[0-9]+:[0-9]+ :09:35
^Operador não, por exemplo [^0-9], um caractere não numérico

Há ainda vários outros operadores para expressões regulares que podem ser encontradas em diversos sites.

Exemplo Prático com Regex no Excel

No exemplo abaixo temos a necessidade de extrair o número do processo.

Ele segue um padrão de números, traço e pontuações e constam em diferentes partes dos textos.

Para extrair estes dados nós utilizamos a seguinte expressão regular REGEX: [0-9]{7}-[0-9]{2}.[0-9]{4}.[0-9]{1}.[0-9]{2}.[0-9]{4}

Nele temos o uso de [0-9]{7}, isso significa 7 caracteres numéricos, após ele temos o caracter "-" e o caracter "." e outras cadeiras numéricas.

O resultado então é a extração exata dos caracteres, por exemplo: 0000403-07.5050.8.56.0005.

Download d

Download da Planilha de Regex Excel - Expressões Regulares

Realize o download da planilha com o Regex instalado no Excel e vários exemplos neste botão abaixo. Basta se inscrever na nossa newsletter gratuita para o download automático.

Download — baixe aqui: Planilha de Regex Excel - Expressões Regulares

Preencha seus dados para receber o link de download no seu e-mail.

Principais recursos

Confira o que este material oferece para você.

Organização por data e etapas
Classificação automática
Ranking e destaques
Fluxos e etapas automáticas
Dashboard com indicadores
Atualização automática por fórmulas

Perguntas frequentes

O material é realmente gratuito?

Sim. O acesso é gratuito e não exige cadastro.

Preciso ter o Excel instalado?

Recomendamos o Excel 2013 ou superior para todos os recursos.

Como faço para receber atualizações?

As atualizações são automáticas dentro da própria planilha.

Funciona no Excel do Mac?

Sim, funciona no Excel para Windows e para Mac.

Funciona no celular?

É possível visualizar no app do Excel; a edição completa é no computador.

Planilhas relacionadas

Planilha de Fluxo de Caixa

Planilha de Fluxo de Caixa

(1.327)

R$ 89,90

Controle de Estoque

Controle de Estoque

(962)

R$ 69,90

Planilha Financeira Empresarial

Planilha Financeira Empresarial

(1.254)

R$ 79,90

Dashboard Financeiro no Excel

Dashboard Financeiro no Excel

(689)

R$ 49,90

Continue lendo

Curso Excel Master — Básico ao Avançado, VBA, PowerPoint e mais

Receba conteúdos e novidades direto no seu e-mail

Dicas, tutoriais, planilhas gratuitas e muito mais.

Não enviamos spam. Cancele quando quiser.

Download imediato

Acesso na hora após a compra

Compra 100% segura

Seus dados protegidos com SSL

Acesso vitalício

Use para sempre, sem mensalidades

Suporte via WhatsApp

Atendimento rápido e humanizado