Lissa pregunta:
¿Hay alguna forma de cambiar un número (siempre un número aleatorio) después de la palabra zorro? Ejemplo: zorro 23, oso 1, zorro 398, rana 12, zorro 15. Quiero cambiar el número al mismo color de la palabra zorro.
Podemos buscar y reemplazar por formato en Microsoft Word. Esta es una gran característica para encontrar rápidamente el texto formateado e incluso reemplazar el formato de texto completo en el documento.
Seleccione Búsqueda avanzada en la cinta.

Ingrese el texto para buscar, luego haga clic en el botón Más para ver las opciones avanzadas y haga clic en el botón Formato.

Seleccione la opción Fuente en la configuración, luego puede configurar el color del texto que le gustaría encontrar en el documento. Haga clic en Aceptar para cerrar la ventana de diálogo Buscar fuente.

Haga clic en Buscar siguiente y verá que se seleccionará la primera aparición del texto que se busca en cierto color.

También podemos realizar búsquedas más complicadas utilizando comodines. Sin embargo, el módulo de búsqueda nativo de Word no nos permite hacer una búsqueda como pidió Lissa.
¡Ahí es donde podemos incluir RegEx en el juego!
Biblioteca de expresiones regulares VBSCript
VBA no se envía con ningún soporte de expresión regular. Sin embargo, la biblioteca de Microsoft VBScript contiene poderosas capacidades de expresión regular. Esta biblioteca es parte de Internet Explorer 5.5 y posterior, por lo que está disponible en todas las computadoras que ejecutan Windows XP, Vista, 7, 8, 8.1 o 10.
Usuarios de Mac
Dado que Internet Explorer no es una aplicación de Mac, esta biblioteca no existe en Mac. Por lo tanto, los ejemplos de VBA a continuación no funcionan en Mac.
Para usar esta biblioteca en VBA, cambie a VBE, seleccione Proyecto y referencias en el menú VBE, luego desplácese hacia abajo en la lista para encontrar el elemento "Microsoft VBScript Regular Expressions 5.5" y márquelo para incluirlo en la aplicación.

Inserte un nuevo módulo y copie y pegue el siguiente código en este módulo.
Sub doRegexFind() Dim strSample As String Dim objRegex As RegExp Dim matches As MatchCollection Dim fnd As Match strSample = "First product code is fox 12, second one is fox 22, and third product is fox 45." Set objRegex = New RegExp With objRegex .Pattern = "fox d+" .Global = True .IgnoreCase = True Set matches = .Execute(strSample) For Each fnd In matches Debug.Print fnd Next fnd End With End Sub
Este procedimiento toma el texto de muestra, encuentra los códigos de producto según el patrón dado, que comienza con "zorro", espacio simple y un número, e imprime los códigos coincidentes en la ventana Inmediato (presione Ctrl + G en VBE si no es así ya visible).

d+
la clase de carácter en el patrón define uno o más caracteres numéricos, y el patrón es básicamente el prefijo "zorro" seguido de un espacio seguido de números.
Más información
Visite Lenguaje de expresiones regulares - Referencia rápida para obtener más información sobre escapes de personajes, clases de personajes y anclajes.
Copie y pegue el siguiente código para ver RegEx en acción para eliminar los espacios de los códigos de producto.
Sub doRegexFindReplace() Dim objRegex As RegExp Dim matches As MatchCollection Dim fnd As Match Dim strSample As String strSample = "First product code is fox 12, second one is fox 22, and third product is fox 45." Set objRegex = New RegExp With objRegex .Pattern = "(fox) (d+)" .Global = True .IgnoreCase = True strSample = .Replace(strSample, "$1$2") End With Debug.Print strSample End Sub
Este procedimiento reemplaza el contenido del texto de muestra eliminando los espacios de los códigos de producto que coinciden con el patrón dado e imprime el texto del resultado en la ventana Inmediato.

Tenga en cuenta que el patrón es ligeramente diferente al primer código. Los términos de este patrón se incluyen entre paréntesis y los términos correspondientes se utilizan en el método Reemplazar como $ 1 y $ 2 en orden. Este procedimiento simplemente une los dos términos sin espacios.
De vuelta a la pregunta
Volvamos al texto de muestra que usamos al principio de este artículo.

Necesitamos encontrar "zorro" seguido de caracteres numéricos, y cambiar la coincidencia usando el color de la sección "zorro" en el texto coincidente.
Aunque la expresión regular coincide muy bien con el patrón dado, no puede reemplazar el color del texto en un documento de Word. Por lo tanto, combinaremos los métodos RegEx y Word VBA en el siguiente procedimiento.
Estos son los pasos:
- Encuentre las coincidencias con RegEx.
- Busque cada texto coincidente mediante el método de búsqueda de palabras.
- Encuentra el color de la primera palabra en el rango encontrado.
- Cambie el color del rango encontrado con el color del paso anterior.
Cambie a VBE e inserte un nuevo módulo. Asegúrese de que la biblioteca VBScript Regular Expressions esté agregada al proyecto y copie y pegue el siguiente código en este nuevo módulo.
Sub doRegexMagic() Dim str As String Dim objRegex As RegExp Dim matches As MatchCollection Dim fnd As Match Set objRegex = New RegExp str = "fox" With Selection .HomeKey wdStory .WholeStory End With With objRegex .Pattern = str & " d+" .Global = True .IgnoreCase = True Set matches = .Execute(Selection.Text) End With With Selection .HomeKey wdStory With .Find .ClearFormatting .Forward = True .Format = False .MatchCase = True For Each fnd In matches .Text = fnd .Execute With Selection .Font.Fill.ForeColor = .Range.Words(1).Font.TextColor .MoveRight wdCharacter End With Next fnd End With .HomeKey wdStory End With End Sub
Ejecute el código y aquí está el resultado.

Descargar archivo de Word
Para descargar el archivo de Word: cómo-usar-regex-en-microsoft-word.docm
¿RegEx en Excel?
Regex falta por completo en Excel. Sin embargo, todavía podemos usar Expresiones regulares de VBScript en Excel VBA.
Launch Excel, open a new workbook, and create the content as shown below.

Reference
This article has been inspired by Learn Excel 2010 - "Find & Replace Color of A Certain Word": Podcast #1714 published by Bill Jelen on May 21, 2013! So we wanted to use similar sample text as he used in the video. We just added numbers after the "fox".
Switch to VBE, and insert a new module. Make sure VBScript Regular Expressions library is added to the project just like you did in Word, and copy and paste the following code into this new module.
Sub doRegexMagicInExcel() Dim str As String Dim objRegex As RegExp Dim matches As MatchCollection Dim fnd As Match Dim rng As Range Dim cll As Range Set objRegex = New RegExp Set rng = Selection str = "fox" With objRegex .Pattern = "(" & str & ") (d+)" .Global = True .IgnoreCase = True For Each cll In rng.Cells Set matches = .Execute(cll.Value) For Each fnd In matches cll.Value = .Replace(cll.Value, "$1$2") Next fnd Next cll End With End Sub
Return to worksheet, and select the range with sample text. Run the macro, and see the result.

This procedure loops through the cells in the selected range, replaces the text in the cells by removing the spaces from the product codes matched with the given RegEx pattern.
Download Excel File
To download the Excel file: how-to-use-regex-in-microsoft-excel.xlsm