Tag Archives: VBScript.RegExp

Excel – Criando uma função usando Regular Expression

Regex

No mundo da programação, pelo menos nos últimos anos, as Regular Expressions tornaram um utilitário quase indispensável para análise de textos, seja qual for a linguagem. Diante deste cenário, é um pouco estranho o Excel como ferramenta de uso geral para análise não tenha incluído essa funcionalidade.

Fica como sugestão para a versão 2010, se é que ela já não tem. E se a Microsoft não faz, a gente faz, certo?

Para fazer uso do mecanismo de Regular Expressions nas suas planilhas de Excel, crie um novo módulo no VBA e cole o seguinte código:

Public Function RegExp(Text As String, Pattern As String) As Boolean
    Dim oRegEx As Object
    Set oRegEx = CreateObject("VBScript.RegExp")
    With oRegEx
        .Pattern = Pattern
        RegExp = .Test(Text)
    End With
    Set oRegEx = Nothing
End Function

Em detalhes, a função faz uso da biblioteca VBScript.RegExp disponível no Windows. Como ele é acessível somente por VBA, é possível disponibilizar criar uma função personalizada para usufruir desta funcionalidade. Um exemplo de chamada seria como na planilha a seguir:

A
B
1 Email webmaster@tomasvaquez.com.br
2 Expressão ^[\w-\.]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,3}$
3 Válido (=RegExp(B1;B2)) VERDADEIRO

No caso acima, a Regular Expression utilizada é para validar se o email é válido ou não, pelo menos seu formato de texto.

Para saber mais sobre Regular Expressions:

http://www.regular-expressions.info/

Referências:

http://www.eggheadcafe.com/software/aspnet/30273396/excel-to-check-for-regula.aspx