Imagen: Sai/Adobe Stock

Visual Basic para Aplicaciones es el lenguaje detrás de las aplicaciones de Office que le permite automatizar tareas. Pero usar VBA en Word presenta desafíos. El primero es moverse a través de un documento debido a todos los diferentes tipos de contenido: texto, imágenes, tablas, etc. En este tutorial, le mostraré dos procedimientos simples de VBA para la navegación. Uno identifica el comienzo de un documento de Word y el otro identifica el final del documento.

Uso Microsoft 365 en un sistema Windows 10 de 64 bits, pero puede usar una versión anterior. Puede acceder a los archivos de demostración aquí. Word para la web no es compatible con VBA.

VER: Google Workspace frente a Microsoft 365: un análisis en paralelo con una lista de verificación (Premium de TechRepublic)

Índice

Acerca de ActiveDocument de Microsoft Word VBA

El componente principal de VBA en el que nos basaremos en ambos procedimientos es la propiedad ActiveDocument, que devuelve un objeto Document que representa el documento activo. En otras palabras, abre el documento, como un todo. No lo necesitará para todos los procedimientos de VBA en Word, pero lo necesitará cuando necesite hacer referencia a "partes" del documento.

Si no hay ningún documento de Word abierto, esta propiedad devuelve un error. Si usa esta propiedad de Excel o PowerPoint, debe incluir el manejo de errores para esta situación.

Esta propiedad utiliza la siguiente forma:

expression.ActiveDocument

dónde expression es una variable que representa el objeto Aplicación (Palabra). Afortunadamente, en Word, esto está implícitamente implícito.

El siguiente elemento de VBA que usaremos es el método Range, que usa la forma

expression.Range(start, end)

para devolver un objeto Range. Usaremos este método para identificar un área del documento.

No existe un método que diga "ir al inicio" o "ir al final", por lo que usaremos los argumentos de inicio y fin para identificar los dos. Ambos argumentos son opcionales y, como era de esperar, start identifica la posición del primer carácter y end identifica la posición del último carácter.

Ahora pasemos a los procedimientos reales de VBA.

Cómo usar VBA para encontrar el comienzo de un documento de Word

Mover el cursor al inicio de un documento de Word usando VBA es increíblemente simple. Lista A muestra el procedimiento. Primero, el procedimiento declara y define un objeto de rango, usando 0s para identificar el inicio del documento. Dos 0 colocarán el cursor antes de cualquier contenido en el documento activo. La segunda línea agrega algo de texto y el vbNewLine constante agrega una nueva línea.

Lista A

Sub GoToStart()

'Move cursor to the beginning of the active document.

'Add a short text phrase to show it worked.

Dim rBegin As Range

Set rBegin = ActiveDocument.Range(0, 0)

rBegin.Text = "This is the beginning of this document." & vbNewLine

End Sub

Ahora veamos el segundo procedimiento que mueve el cursor al final de un documento.

Cómo usar VBA para encontrar el final de un documento de Word

Como se mencionó, no existe un método que diga "ir hasta el final", por lo que debemos forzar el problema encontrando el último carácter. Es un poco más complejo, pero no difícil, como se muestra Lista B. Este procedimiento funciona como el primero, pero toma el texto al final del documento, que encuentra usando la propiedad Last del objeto Characters.

Esta vez hemos posicionado el vbNewLine constante frente al texto.

Lista B

Sub GoToEnd()

'Move cursor to the end of the active document.

'Add a short text phrase to show it worked.

Dim rEnd As Range

Set rEnd = ActiveDocument.Range.Characters.Last

rEnd.Text = vbNewLine & "This is the end of this document."

End Sub

Cómo ingresar y ejecutar procedimientos de VBA en un documento de Word

Ahora es el momento de ingresar los dos procedimientos que se utilizarán en un documento de Word. Estoy usando un breve documento de Word de dos páginas, ilustrado en Figura A, con una variedad de contenido guardado como un archivo de Word habilitado para macros. Si está utilizando una versión de cinta, debe guardar el documento de Word como un archivo habilitado para macros para ejecutar VBA. Si está trabajando en la versión de menú, puede omitir este paso.

Figura A

PalabraVBA_A
Imagen: Susan Harkins/TechRepublic. Los procedimientos de VBA agregarán algo de contenido al principio y al final de este documento de Word.

Para ingresar a los procedimientos de VBA, presione Alt + F11 para abrir el Editor de Visual Basic (VBE). En el Explorador de proyectos de la izquierda, seleccione Este documento. Puede ingresar el código manualmente o importar el archivo .cls descargable. Además, el procedimiento se encuentra en los archivos descargables .docm y .doc. Si ingresa el código manualmente, no lo pegue desde esta página web. En su lugar, copie el código en un editor de texto y luego péguelo en el módulo ThisDocument. Esto eliminará los caracteres web fantasma que, de lo contrario, podrían causar errores.

Ahora vamos a ejecutar los procedimientos de la siguiente manera:

  1. Haga clic en la pestaña Desarrollador.
  2. Elija Macros del grupo Código.
  3. En el cuadro de diálogo resultante, elija Ir a inicio (Figura B).
  4. Haga clic en Ejecutar.

Como puedes ver en Figura C, el procedimiento inserta texto y un salto de línea al principio del documento de Word. Ahora repitamos este proceso pero elija GoToEnd (Figura B). Este procedimiento inserta un salto de línea y algo de texto al final del documento de Word, como puede ver en Figura D.

Figura B

PalabraVBA_B
Imagen: Susan Harkins/TechRepublic. Elige el procedimiento.

Figura C

PalabraVBA_C
Imagen: Susan Harkins/TechRepublic. GoToStart() agregó una oración al comienzo del documento de Word.

Figura D

PalabraVBA_D
Imagen: Susan Harkins/TechRepublic. GoToEnd() agregó una oración al final del documento de Word.

Una cosa que puede notar es que las dos oraciones insertadas usan formatos diferentes. Estas oraciones, como todas las demás, usarán el formato en su lugar. Vale la pena recordar si desea que el texto insertado use un formato específico en su lugar.

Lo más probable es que no desee seguir todos estos pasos para ejecutar esta macro. Recomiendo agregarlo a la barra de herramientas de acceso rápido o a un grupo personalizado. Si necesita ayuda, lea Cómo agregar macros de Office a la barra de herramientas de QAT para un acceso rápido.

Manténganse al tanto

Ambos procedimientos de VBA son simples, tanto los procedimientos en sí como las tareas que realizan. El objetivo es mostrarle cómo navegar a ambos lugares usando VBA. En los próximos meses, dedicaré algunos artículos a más VBA de navegación de documentos de Microsoft Word.