Visual Basic for Applications:
Usando expresiones regulares

Cómo hacerlo:

Para usar expresiones regulares en VBA, primero necesitas habilitar la biblioteca de Microsoft VBScript Regular Expressions. En el editor de VBA, ve a Herramientas -> Referencias, luego marca Microsoft VBScript Regular Expressions 5.5.

Aquí hay un ejemplo básico para encontrar si un patrón existe dentro de una cadena:

Sub FindPattern()
    Dim regex As Object
    Set regex = CreateObject("VBScript.RegExp")

    Con regex
        .Global = True
        .IgnoreCase = True
        .Pattern = "\bis\b"  ' Busca la palabra "is"
    End With
    
    Dim testString As String
    testString = "This is a test string."
    
    If regex.Test(testString) Then
        MsgBox "Patrón encontrado."
    Else
        MsgBox "Patrón no encontrado."
    End If
End Sub

Para reemplazar un patrón en una cadena:

Sub ReplacePattern()
    Dim regex As Object, replacedString As String
    Set regex = CreateObject("VBScript.RegExp")
    
    Con regex
        .Global = True
        .IgnoreCase = False
        .Pattern = "\s"  ' Coincide con cualquier carácter de espacio en blanco
    End With
    
    replacedString = regex.Replace("This is a test string.", "_")
    MsgBox replacedString  ' Salida: "This_is_a_test_string."
End Sub

Profundizar

La inclusión de expresiones regulares en los lenguajes de programación a menudo se remonta a herramientas Unix de los años 70. VBA integró regex a través de la biblioteca de VBScript Regular Expressions, destacando su importancia en tareas de procesamiento de texto incluso en aplicaciones no típicamente asociadas con la manipulación intensa de texto como Excel o Access.

A pesar de su poder, regex en VBA a veces puede ser menos intuitivo o performante en comparación con implementaciones más modernas en lenguajes como Python o JavaScript. Por ejemplo, el módulo re de Python ofrece un amplio soporte para grupos con nombre y características de coincidencia de patrones más sofisticadas, proporcionando un enfoque más limpio y potencialmente más legible. Sin embargo, al trabajar dentro del ecosistema de VBA, las expresiones regulares siguen siendo una herramienta invaluable para tareas que requieren coincidencia de patrones o manipulación de texto. El compromiso en eficiencia a menudo es insignificante en vista de la conveniencia y capacidades que regex aporta a la mesa al tratar con cadenas en aplicaciones de Office.