VBA RegEx - ¿Cómo usar la expresión regular en VBA Excel? (Ejemplos)

Tabla de contenido

¿Qué es RegEx en Excel VBA?

RegEx significa " Expresión regular " en VBA Excel y es una secuencia de caracteres que define el patrón de búsqueda para encontrar un patrón específico de caracteres en una cadena de valores. En una palabra simple, "podemos crear un patrón de expresión regular y usarlo para buscar la cadena de ese patrón".

VBA RegEx es un modelo de objetos. Sé que es intimidante mirar la explicación, pero la cosa es que la naturaleza del objeto. Una cosa que debe recordar aquí es que VBA RegEx (expresión regular) es un objeto de función de texto como nuestras otras funciones de texto, "LEFT, RIGHT, MID".

¿Cómo habilitar RegEx en Excel VBA?

Como le dije a VBA, RegEx es un modelo de objetos en VBA, al igual que nuestro software externo como "MS Word" y "MS PowerPoint". De manera similar, RegEx también es un modelo de objetos componentes (COM), al que debemos hacer referencia en el editor de VBA. Para habilitar RegEx, siga los pasos a continuación.

Paso 1: Vaya al Editor de Visual Basic (Alt + F11)

Paso 2: vaya a Herramientas y referencias.

Paso 3: Ahora, verá referencias al proyecto VBA. Desplácese hacia abajo y seleccione "Microsoft VBScript Regular Expression 5.5".

Paso 4: Ahora haga clic en Aceptar. Podemos acceder a este objeto RegEx ahora en codificación VBA.

Ejemplo: ahora te mostraré un ejemplo sencillo. Suponga que tiene las palabras "Ventas 2019, Ventas 2018 y Ventas 2017". Si define el patrón como (0 - 7), coincide con todos los números entre 0 y 7, por lo que nuestras coincidencias serán 201, 201 y 2017 en cada cadena.

Patrón de expresión regular de VBA

El patrón de la función VBA RegEx parece intimidante y lleva un tiempo comprender el patrón. Podemos ver dos tipos de secuencia de caracteres aquí, uno es "Caracteres literales" y otro es "Metacaracteres".

  • Los caracteres literales buscan la coincidencia exacta de la cadena proporcionada. Por ejemplo, la secuencia de caracteres literal "EFG" simplemente busca todas las coincidencias de "EFG" en el texto proporcionado.
  • Los metacaracteres no son más que una combinación de caracteres con un significado exacto en el patrón RegEx. Esto es completamente diferente a los personajes literales. Es un tema enorme para cubrir. A continuación se muestran algunas de las sintaxis importantes.
Sintaxis Descripción Ejemplo Ejemplo de coincidencia
. Coincide con cualquier carácter de la cadena de entrada. pt Mascota. Olla, Poner, Patrón
() Coincide con cualquier carácter individual entre el corchete de una cadena de entrada. (pt) Coincide con p o t
(^) Coincide con cualquier carácter individual, no entre el corchete de una cadena de entrada. (pt) No coincide con p ni t
(Primero último) Coincide con cualquier carácter entre el rango proporcionado en el corchete. (0-9) Coincide con cualquier dígito del 0 al 9
(Arizona) Coincide con cualquier carácter en minúscula de la a a la z
(ARIZONA) Coincide con cualquier carácter en mayúsculas de la A a la Z
s Coincide con cualquier carácter de espacio en blanco. - Coincide con el espacio, la nueva línea o el carácter de tabulación
S Coincide con cualquier carácter que no sea un espacio en blanco - Los caracteres de coincidencia no son espacio, ni nueva línea ni carácter de tabulación
e Coincide con cualquier carácter de un solo dígito. SE 5 VG 6 Partidos 5 y 6
RE Coincide con cualquier carácter que no sea un dígito SE 5 VG 6 Coincide con SEVG

Propiedades y métodos del objeto RegEx

Como todos nuestros modelos de objetos, RegEx también tiene sus propias propiedades y métodos. Ahora veremos uno a uno en detalle.

Propiedades del objeto VBA Regex

  • Patrón: se utiliza para hacer coincidir la cadena proporcionada.
  • Ignorar mayúsculas y minúsculas : sirve para ignorar los caracteres en mayúsculas y minúsculas.
  • Global: si desea encontrar todas las coincidencias en el patrón, entonces TRUE es el argumento o, de lo contrario, se encontrará la primera coincidencia.
  • Multilínea: si desea buscar nuevos saltos de línea, puede usar esto.

Métodos de objeto RegEx

  • Prueba: esto es para probar si el patrón se puede encontrar en la cadena proporcionada. Esto devolverá TRUE si se encuentra o FALSE.
  • Ejecutar: esto devolverá todas las coincidencias del patrón con la cadena de búsqueda.
  • Reemplazar: esto reemplazará la cadena de búsqueda con la nueva cadena.

Ejemplo de RegEx en VBA Excel

Ahora eche un vistazo al código VBA de ejemplo a continuación.

Código:

Sub RegEx_Example () Dim RegEx como objeto, MyString como conjunto de cadenas RegEx = CreateObject ("VBScript.RegExp") With RegEx .Pattern = "(0-9) +" End With MyString = "Fecha de nacimiento, año 1985" MsgBox RegEx .Test (MyString) MyString = "La fecha de nacimiento es ???" MsgBox RegEx.Test (MyString) End Sub

regular

En el código anterior, hemos configurado el patrón para buscar el número del 0 al 9 de la siguiente manera.

Con RegEx .Patrón = "(0-9) +" Terminar con

Entonces la variable MyString = "Fecha de nacimiento año es 1985" esto contiene los valores de 0 a 9, por lo que nuestro cuadro de mensaje devolverá TRUE.

MyString = "La fecha de nacimiento es ???" no tiene números del 0 al 9, por lo que devolverá FALSE como resultado de los cuadros de mensaje.

Articulos interesantes...