Saltar a contenido

S17 · Macros básicas (grabación y edición VBA)

Datos de la sesión

Fecha: lunes 31-ago-2026 · Horario: 20:00 – 22:00 · Duración: 2 h · Sesión: 17 de 47 · Unidad: 2

¿Cuántas veces repites la misma secuencia de clics? Seleccionar, poner Título 1, cambiar el color, justificar, insertar la fecha… Una macro es una grabación de esos pasos que luego reproduces con un solo botón o atajo. No hace falta saber programar para empezar: se graba como quien graba un video, y después, si quieres afinarla, se edita el código (VBA en Word, Basic en LibreOffice). Lo vemos en Word y LibreOffice Writer; para Google Docs el equivalente es Apps Script (JavaScript), que solo mencionamos.

Una macro se guarda dentro del documento… y eso cambia la extensión

Un .docx no puede guardar macros. Al guardar un documento con macros, Word te obliga a usar .docm (documento habilitado para macros) o una plantilla .dotm. En LibreOffice el .odt sí admite macros. Si guardas un .docx con macros, se pierden.

Objetivos

  • Entender qué es una macro y cuándo conviene usarla (tareas repetitivas).
  • Grabar una macro en Word y en LibreOffice, y reproducirla.
  • Asignarla a un botón o a un atajo de teclado.
  • Abrir el editor de código y hacer una edición mínima de VBA/Basic.
  • Guardar correctamente en .docm y conocer la seguridad de macros.

Contenidos

1. ¿Qué es una macro y cuándo usarla?

Una macro automatiza una secuencia de pasos que repites igual. Buenos candidatos: aplicar un formato corporativo, insertar un encabezado estándar, limpiar texto pegado de internet, poner una tabla con estilo fijo.

Regla práctica

Si haces la misma secuencia más de tres veces, grábala. Si cambia según el caso (a veces sí, a veces no), entonces necesitas editar el código para añadir una condición — pero eso ya es el segundo paso.

2. Activar las herramientas de macros

Quiero… Word (español) LibreOffice Writer
Ver la pestaña Programador Archivo → Opciones → Personalizar cinta → marca Programador Ya está en Herramientas → Macros
Grabar Programador → Grabar macro (o Vista → Macros → Grabar macro) Herramientas → Macros → Grabar macro
Editor de código Programador → Visual Basic (Alt+F11) Herramientas → Macros → Editar macros
Seguridad de macros Programador → Seguridad de macros Herramientas → Opciones → Seguridad → Seguridad de macros

LibreOffice: activa la grabadora

En algunas instalaciones la grabadora está oculta: Herramientas → Opciones → LibreOffice → Avanzado → marca «Habilitar la grabación de macros (limitada)».

3. Grabar tu primera macro

El flujo es el mismo en Word y LibreOffice: enciendes la grabación, haces los pasos con cuidado, detienes.

  1. Pega texto copiado de internet (Wikipedia, un periódico, un PDF…) en un documento. Observa el desastre: fuentes mezcladas, tamaños distintos, hipervínculos azules subrayados, colores heredados, párrafos con espaciados raros. Al pegar, el texto queda seleccionado — esa selección es justo lo que la macro va a limpiar, sin tocar el resto del documento.
  2. Programador → Grabar macro. Ponle nombre (sin espacios: LimpiarTextoWeb) y, en Word, decide dónde guardarla (ver aviso) y opcionalmente un botón/atajo.
  3. Con el texto aún seleccionado, realiza exactamente los pasos de limpieza: Inicio → Borrar todo el formato → fuente Times New Roman 12 pt → color Automático (negro) → interlineado 1.5 → espaciado posterior 6 pt → alineación Justificar.
  4. Programador → Detener grabación.
  5. Prueba: busca otro artículo en internet, pégalo en el mismo documento (no en uno nuevo), ejecuta la macro y comprueba que solo el texto recién pegado queda limpio, sin alterar lo que ya estaba.

«Todos los documentos (Normal.dotm)» vs «este documento»

Al grabar en Word te pregunta dónde guardar la macro. Normal.dotm la deja disponible en todos tus documentos (útil para ti, pero no viaja con el archivo). Este documento la guarda dentro y viaja con él, pero te obliga a guardar en .docm. Elige según si la macro es «tuya» o «del documento».

La grabadora capta clics, no intenciones

Si durante la grabación haces clic con el ratón en un punto del texto, la macro grabará «ir a esa posición», no «ir al inicio del párrafo». Para macros robustas, muévete con el teclado (Inicio, Ctrl+Inicio, Mayús+Fin) en vez del ratón.

4. Ejecutar la macro y asignarla a un botón/atajo

Quiero… Word (español) LibreOffice Writer
Ejecutar Programador → Macros (Alt+F8) → elige → Ejecutar Herramientas → Macros → Ejecutar macro
Botón en la barra de acceso rápido Archivo → Opciones → Barra de herramientas de acceso rápidoMacros → añadir Herramientas → Personalizar → Barras de herramientas
Atajo de teclado Archivo → Opciones → Personalizar cinta → Personalizar (Métodos abreviados) → categoría Macros Herramientas → Personalizar → Teclado

5. Asomarse al código (VBA / Basic)

Abre el editor (Alt+F11 en Word). Verás algo así (lo que grabaste + lo que añadimos después):

Sub LimpiarTextoWeb()
    ' —— Grabado por la grabadora ——
    ' Actúa sobre la selección actual (el texto recién pegado)
    Selection.ClearFormatting        ' Borrar todo el formato
    Selection.Font.Name = "Times New Roman"
    Selection.Font.Size = 12
    Selection.Font.Color = wdColorBlack
    Selection.ParagraphFormat.SpaceAfter = 6
    Selection.ParagraphFormat.LineSpacing = LinesToPoints(1.5)
    Selection.ParagraphFormat.Alignment = wdAlignParagraphJustify

    ' —— Añadido a mano después de grabar ——
    ' Quitar dobles espacios (típico de texto pegado de web)
    With Selection.Find
        .Text = "  "
        .Replacement.Text = " "
        .Execute Replace:=wdReplaceAll
    End With
    ' Quitar subrayado de hipervínculos conservando el texto
    Selection.Font.Underline = wdUnderlineNone
    MsgBox "Texto limpiado. Listo para trabajar."
End Sub

Fíjate en qué está pasando aquí: la grabadora tradujo tus clics a VBA (la primera mitad), y tú añadiste a mano la segunda mitad (quitar dobles espacios, quitar subrayado, aviso). El código actúa sobre Selection — lo que tengas seleccionado al ejecutar —, no sobre todo el documento: así puedes pegar contenido web en un informe existente y limpiar solo lo nuevo sin afectar al resto. No necesitas dominar VBA hoy: basta con entender que la macro es ese texto y que puedes retocarlo sin empezar de cero.

Grabar para aprender a programar

El truco de los expertos: graban la acción para ver qué código genera y luego copian ese fragmento a sus propias macros o lo editan. La grabadora es tu mejor «traductor» de clics a VBA.

6. Seguridad de macros

Las macros pueden ser útiles… o maliciosas (un .docm de un correo desconocido puede traer código dañino). Por eso Office las bloquea por defecto y muestra la barra «Habilitar contenido».

Nivel Qué hace
Deshabilitar todas con notificación (recomendado) Bloquea, pero te deja decidir con un aviso
Deshabilitar todas sin notificación Máxima seguridad; ni siquiera avisa
Habilitar todas (no recomendado) Peligroso: ejecuta cualquier macro sin preguntar

No habilites macros de documentos que no esperabas

La vía de entrada clásica de malware por Office es un .docm que pide «Habilitar contenido». Si no sabes qué hace la macro o no esperabas el archivo, no la habilites.

Tips avanzados

  • Nombra bien y sin espacios. LimpiarTextoWeb es mejor que Macro1; sabrás qué hace dentro de un mes.
  • Una macro = una tarea. Es más fácil mantener varias macros pequeñas que una gigante que hace de todo.
  • Guarda tus macros «personales» en Normal.dotm para tenerlas siempre; guarda las «del documento» dentro del .docm.
  • Prueba en una copia. Una macro que borra o reemplaza puede arruinar un documento; pruébala en un archivo de ejemplo.
  • Ctrl+Z no siempre deshace una macro entera. Algunas acciones de macro no se deshacen en un solo paso; trabaja sobre copias.
  • Google Docs → Apps Script. Si trabajas en la nube de Google, la automatización es con Extensiones → Apps Script (JavaScript), no VBA.

Otros procesadores

Trae un editor de macros (Herramientas → Macro) con un lenguaje tipo Basic (JS en versiones recientes). La grabadora es limitada; para tareas serias se escribe el código.

Automatiza con macros en JavaScript (Complementos → Macros), no con VBA. Útil si tu organización usa OnlyOffice en servidor.

Actividad en clase · «Limpiar texto web en un clic» (40 min)

Hazlo en Word o LibreOffice (la grabadora no existe en Google Docs; allí se escribe el script completo en Apps Script).

  1. Abre Wikipedia en el navegador, busca «Abancay» (o cualquier artículo que te interese), copia varios párrafos y pégalos en un documento.
  2. Pega el texto copiado en un documento (no importa si ya tiene contenido previo). Al pegar, el texto queda seleccionado automáticamente. Activa la grabadora y graba la macro LimpiarTextoWeb haciendo los pasos del apartado 3 sobre esa selección (borrar formato, Times New Roman 12, negro, interlineado 1.5, justificar).
  3. Detén la grabación y pruébala: pega otro texto de internet en el mismo documento y ejecuta la macro. Verifica que solo limpia lo nuevo y no toca lo anterior.
  4. Abre el editor (Alt+F11), localiza tu macro y añade a mano:
    • El bloque de buscar/reemplazar dobles espacios.
    • Selection.Font.Underline = wdUnderlineNone para quitar el subrayado de enlaces.
    • MsgBox "Texto limpiado. Listo para trabajar." al final.
  5. Asigna la macro a un botón de la barra de acceso rápido o a un atajo de teclado (Ctrl+Shift+L es buena elección), y úsalo sobre un tercer texto pegado de internet.
  6. Guarda el documento como .docm (Word) u .odt (LibreOffice) y comprueba que la macro se conserva al reabrir.
  7. Cierra y reabre: observa el aviso de seguridad de macros y practica «Habilitar contenido».

Atajos útiles

Acción Word (español) LibreOffice
Editor Visual Basic Alt+F11 Herramientas → Macros → Editar
Lista de macros / Ejecutar Alt+F8 Herramientas → Macros → Ejecutar
Grabar macro Programador → Grabar Herramientas → Macros → Grabar
Detener grabación Programador → Detener Barra flotante Detener grabación

Recursos (guías oficiales con capturas)