Cómo escribir macros de Word – explicado de forma sencilla!

Word es compatible con las macros. Digamos que puede programar en Word y automatizar los flujos de trabajo. Para ello, es necesario tener conocimientos de Visual Basic para Aplicaciones. Lea aquí los fundamentos más importantes y aprenda a escribir macros sin ningún conocimiento de programación.

Activar las macros de Word

Primero hay que activar las herramientas de desarrollo para poder programar Word. Funciona así:

  1. Abrir el menú Archivo – Opciones.
  2. Haga clic en Personalizar la cinta
  3. Si se activa bajo Pestañas principales la entrada Herramientas para desarrolladores.

Antes de poder programar Word, debes activar las herramientas de desarrollo. Publicidad

Programación de macros en Word

Lo que debe saber sobre la programación de macros

  • Word funciona con Visual Basic para Aplicaciones, VBA para abreviar.
  • El lenguaje está orientado a objetos. Significado:
    • Las palabras, los documentos y demás son objetos.
    • Estos objetos tienen propiedades que puedes modificar.
    • Cada objeto tiene métodos asociados que puedes ejecutar.
    • Lea más sobre la programación orientada a objetos en VBA aquí.
  • Cada macro de Word se almacena como una subrutina independiente en un archivo de código fuente común.
  • El marco creado por Word que contiene los comandos de la macro «MyMacro» tiene el siguiente aspecto:

    Sub MiMacro()

    Fin de la sub

    En lugar de MyMacro se muestra el nombre de la macro que has dado.

Abrir el editor de macros

  1. Abrir la pestaña Ver la entrada Macros – Mostrar macros.
  2. En el campo Nombre de la macro introduzca un nombre para su macro.
  3. A continuación, haga clic en el botón de la derecha Crear.
  4. Ahora se abre el editor.

En el menú Ver puede visualizar las macros existentes o escribir otras nuevas.

Ejemplo de macro: Determinar la duración media de la condena

Nuestra macro de ejemplo calcula la longitud media de la frase en palabras para el texto actual.

La lógica del programa es la siguiente:

  • Word le permite recorrer todas las frases de una sección.
  • A continuación, se determina la longitud de las palabras para cada pase, es decir, para cada registro, y se incluye en cada caso un contador de los pases del bucle y un contador total de las palabras.
  • Al final, la macro divide la suma de palabras entre el número de frases y muestra el valor medio.

Nota: La tarea aquí también puede expresarse de forma mucho más sencilla que en nuestro ejemplo. Esto se hace dividiendo el número de palabras del documento por el número de frases. Pero necesitamos el bucle como ejemplo 😉 . Esta es la versión corta:

Sub PalabraCorta()

MsgBox "Palabras por frase: " + Str(Int(ActiveDocument.Palabras.Recuento / DocumentoActivo.Frases.Count))

Fin de la sub

Pero ahora un ejemplo con bucle y variables. Copie las siguientes líneas en su editor de macros de Word. (Atención! No debe copiar la primera y la última línea, ya que están predefinidas en el editor de macros.)

Sub Contador de palabras()

Dim s As Range

Dim numWords As Integer

Dim numSentences As Integer

numSentences = 0

numWords = 0

Para cada s en ActiveDocument.Frases

numSentences = numSentences + 1

numWords = numWords + s.Palabras.Cuenta

Siguiente

MsgBox "Media de palabras por frase: " + Str(Int(numWords / numSentences))

Fin de la sub

Cómo funciona la macro

  1. En primer lugar, la macro define las variables con la sentencia Dim.
    • La variable s se utiliza como Gama define.
    • Es un objeto que contiene un determinado rango del documento actual.
    • En nuestro ejemplo, serán las frases individuales del documento.
    • Las variables numSentences numWords almacenar el número de frases y palabras del documento.
  2. Ahora viene el inicio del bucle con

    Para cada s en ActiveDocument.Frases

    En cada paso del bucle, la variable s Rellenado con otra frase del documento.

  3. En el bucle, el contador de frases se incrementa primero en 1.
  4. Entonces la variable numWords incrementado:

    numWords = numWords + s.Palabras.Cuenta

    Aquí es donde nuestro objeto de alcance s un papel importante. Con palabras.Count, la macro cuenta las palabras utilizadas en s palabras contenidas y añadirlas al nivel anterior de numWords.

  5. Con Siguiente inicia el siguiente bucle.
  6. Una vez contadas todas las frases del documento, el programa sale del bucle.
  7. MsgBox finalmente muestra el resultado. En el resultado, las variables se definen primero con Int se truncan todos los decimales y luego el resultado con Str salida formateada como una cadena. Para el resultado propiamente dicho, dividimos el número de palabras por el número de frases.

Ejecutar la macro de ejemplo

  1. En el editor de macros, haga clic en Ejecutar – Ejecutar Sub/UserForm.
  2. A continuación, la macro se inicia y devuelve el resultado o un mensaje de error.
  3. Si aparece un mensaje de error, haga clic en él Ayuda, para obtener una explicación más detallada. (En la mayoría de los casos se trata de errores tipográficos.)

Contador de palabras de la macro de salida

Si desea utilizar una macro con frecuencia, asigne una combinación de teclas a la macro.