Cómo comenzar a usar macros en Word

¿Estás cansado de realizar tareas repetitivas en Microsoft Word? Enterrada dentro del programa hay una poderosa herramienta de automatización que puede quitarle esos trabajos de las manos. Estamos hablando de macros, y aunque la función se basa en Visual Basic for Applications (VBA) de Microsoft, puede usarla incluso si la idea de codificar le da problemas.

Con un clic en un botón, Word registrará sus acciones, generando una macro que puede reproducir tantas veces como desee. Si es aventurero, puede modificar fácilmente la macro para obtener un grado adicional de automatización.

Aquí le mostraremos un ejemplo simple pero útil: Cómo automatizar la función Buscar y Reemplazar de Word.

Grabar la macro

En este ejemplo, usted es el estimado presidente de la Sociedad para la Preservación de Aparatos Dentales Antiguos. Tiene docenas de documentos de Word sobre dentaduras postizas históricas y similares, todos con el nombre de la sociedad mencionado de manera prominente. Entonces, de repente, la junta vota para cambiar el nombre a Dental Antiques Preservation League. Ahora necesita una forma sencilla de actualizar los documentos.

Puede comenzar con un nuevo documento en blanco o abrir uno existente. Si aún no lo ha hecho, deberá habilitar la pestaña Desarrollador.

Vaya a Archivo> Opciones> Personalizar cinta . A la derecha, en Pestañas principales , marque la opción Desarrollador . Seleccione Aceptar y salga.

Ahora creemos nuestra macro.

  1. Haga clic en Desarrollador> Grabar macro .
  2. Se le pedirá que nombre la macro. Ingrese "ChangeSocietyName" o cualquier otro nombre que le convenga. Al nombrar macros, evite espacios, puntos, signos de exclamación y caracteres especiales, o de lo contrario obtendrá un mensaje de error. Puede utilizar números, pero el primer carácter debe ser una letra.
    Establecer propiedades para macros de Word
  3. Puede asignar la macro a un botón y / o atajo de teclado, pero esto no es un requisito. Si elige Botón, Word le permitirá agregarlo a la barra de herramientas de acceso rápido. También puede agregar una breve descripción de la macro.
  4. Haga clic en Aceptar y Word ahora registrará sus acciones. Presione Ctrl + H para abrir el cuadro de diálogo Buscar y reemplazar .
  5. Introduzca "Sociedad para la preservación de aparatos dentales antiguos" en Buscar y "Liga de preservación de antigüedades dentales" en Reemplazar.
    Grabar macro para buscar y reemplazar
  6. Haga clic en Reemplazar todo para ejecutar la operación Buscar y reemplazar. Esta es la única acción que desea grabar. No importa si la macro realmente reemplaza algún texto. El punto es guardarlo para otros documentos.
  7. Esto es importante: haga clic en Desarrollador> Detener grabación . De lo contrario, la macro incluirá todas las acciones posteriores.

Ahora veamos tu obra. Abra un documento que contenga el nombre de la sociedad. Haga clic en Desarrollador> Macros . Si hace doble clic en ChangeSocietyName, Word realizará automáticamente la operación Buscar y reemplazar.

Sugerencia: mientras graba la macro, es posible que deba realizar una acción que no desea que se grabe. Por ejemplo, es posible que desee copiar y pegar texto en el cuadro de diálogo Buscar y reemplazar en lugar de escribirlo manualmente. No hay problema: simplemente haga clic en Desarrollador> Pausar grabación , copie y pegue el texto, luego haga clic en Desarrollador> Reanudar grabadora . Luego, puede completar la grabación de macros como se describe arriba.

Aunque aquí nos centramos en Microsoft Word, también puede utilizar macros para aumentar la productividad en Excel . Y hay muchas macros que ahorran tiempo para Microsoft OneNote .

Buceando en el código

Ahora profundizaremos en nuestra nueva macro de Word. Vaya a Desarrollador> Macros , pero en lugar de hacer doble clic en la macro, selecciónela y haga clic en Editar . Esto abre el editor de Visual Basic, un entorno autónomo para crear aplicaciones VBA.

Puede parecer abrumador, pero puede ignorar los menús y la mayoría de los paneles. En cambio, concéntrese en la ventana que contiene el código. Como puede ver, Word acaba de escribir una macro que realiza la búsqueda y reemplazo.

 
Sub ChangeSocietyName()
'
' ChangeSocietyName Macro
' Rename Society for the Preservation of Antique Dental Appliances
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "Society for the Preservation of Antique Dental Appliances"
.Replacement.Text = "Dental Antiques Preservation League"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Expliquemos qué está pasando aquí.

El "sub" en la primera línea es la abreviatura de "subrutina", un pequeño programa que puede ejecutarse por sí solo o como parte de una aplicación VBA más grande. Las líneas precedidas por comillas simples son para comentarios. Las comillas le dicen a VBA que ignore cualquier declaración en esas líneas.

Luego llegamos al meollo del código: el código que realiza la operación Buscar y Reemplazar . Como puede ver, especifica valores para cada opción en el cuadro de diálogo Buscar y reemplazar, incluido el texto y el texto de reemplazo entre comillas. El comando Selection.Find.Execute cerca del final equivale a hacer clic en el botón "Reemplazar todo".

Modificar la macro

Para usar macros, no tiene que meterse con el código ni siquiera mirarlo. Pero puede sacar más provecho de esta función si está dispuesto a sumergirse. Por ejemplo, suponga que comete un error tipográfico al grabar la macro. En lugar de volver a grabarlo, puede ir a Visual Basic y solucionarlo.

También puede modificar la macro para que sea más útil, y eso es lo que haremos aquí. Cuando ejecuta Buscar y reemplazar, ya sea manualmente o mediante una macro, Word recuerda el texto de búsqueda y reemplazo. La próxima vez que abra el cuadro de diálogo Buscar y reemplazar, se verá así.

Sería mejor borrar los valores para que obtengamos un cuadro de diálogo limpio. Lo haremos con una segunda macro, excepto que esta vez lo haremos directamente en Visual Basic.

  1. En el editor de Visual Basic, seleccione la subrutina completa, desde la primera línea hasta End Sub. Presione Ctrl + C para copiarlo.
  2. Coloque el cursor debajo de End Sub y presione Ctrl + V. Acaba de duplicar la subrutina.
  3. Cambie el nombre de ChangeSocietyName a ClearFindReplace (o cualquier otro nombre que le convenga). Esto es importante porque VBA generará un mensaje de error si intenta ejecutar macros con nombres duplicados.
  4. En los valores .Text y Replacement.Text , elimine el texto pero deje las comillas. Esencialmente, le está diciendo a Word que no encuentre nada y lo reemplace con nada, pero también está borrando esos valores.

El resultado debería verse así:

 
Sub ClearFindReplace()
'
' ClearFindReplace Macro
' Clear Text from Find and Replace dialog
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Ahora volveremos a la macro ChangeSocietyName. Debajo del código de Buscar y reemplazar, pero antes de End Sub, ingrese ClearFindReplace (sin paréntesis al final).

Así es: no es necesario que ingrese todo el código que acaba de crear, solo el nombre de la macro.

 
Sub ChangeSocietyName()
'
' ChangeSocietyName Macro
' Rename Society for the Preservation of Antique Dental Appliances
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "Society for the Preservation of Antique Dental Appliances"
.Replacement.Text = "Dental Antiques Preservation League"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
ClearFindReplace
End Sub

Cuando Word ejecuta ChangeSocietyName, primero ejecutará la función original Buscar y reemplazar. Luego interpretará ClearFindReplace como un comando para ejecutar la segunda macro.

Yendo más lejos con VBA

Como puede ver, la función de grabación de macros de Word puede ayudarlo a ahorrar tiempo de innumerables formas. Puede crear macros para automatizar casi cualquier operación y, en el editor de Visual Basic, puede modificar las macros, incrustar una macro dentro de la otra o crear una subrutina que ejecute varias macros una tras otra.

Debido a que VBA es un lenguaje de programación completo, puede incorporar las subrutinas en aplicaciones más grandes con variables, bucles, declaraciones condicionales y más. Y una vez que haya aprendido los conceptos básicos de VBA en Word, puede aplicar gran parte de ese mismo conocimiento para crear macros en Microsoft Excel y Access.

Para llevarlo más lejos, querrá aprender más sobre las convenciones de VBA y el editor de Visual Basic, por ejemplo, cómo organizar su código y cómo lidiar con errores. Pero incluso si desea seguir con funciones simples como las que se describen aquí, puede recorrer un largo camino para mejorar su productividad.