Cómo usar un procedimiento de VBA que elimina la página actual en un documento de Word

Si trabaja con documentos largos de Microsoft Word y tiene que eliminar páginas con frecuencia, apreciará este sencillo procedimiento de VBA.

Imagen: BigTunaOnline / Shutterstock

Eliminar una página en un documento de Microsoft Word no es difícil, pero no hay una ruta de clic rápido. Debe eliminar el contenido y el salto de página suave o duro. Es un poco incómodo. Probablemente no le importe hacerlo de vez en cuando, pero si tiene que hacer esto mucho, puede resultarle muy tedioso. En este artículo, le mostraré dos procedimientos de VBA que eliminarán la página actual. Además, le mostraré cómo asignar un método abreviado de teclado al procedimiento para que pueda ejecutarlo rápidamente. Incluso si no necesita el procedimiento, puede aprender a crear un atajo de teclado.

VER: Windows 10: listas de comandos vocales para reconocimiento de voz y dictado (PDF gratuito) (TechRepublic)

Estoy usando Microsoft 365 en un sistema Windows 10 de 64 bits, pero puede usar versiones anteriores. Word Online no es compatible con VBA. Para su comodidad, puede descargar los archivos de demostración .docm, .doc y .cls.

Cómo utilizar el procedimiento VBA

Es posible que se sorprenda de lo breve que es el procedimiento necesario para eliminar la página actual. Es solo una línea, gracias a un marcador definido por el sistema, Página, que se refiere a la página actual. Listado A muestra el procedimiento simple. (A menudo verá que los términos macro y subprocedimiento se usan como intercambiables, y eso está bien).

Listado A

Sub DeleteCurrentPage ()

‘Ejecute el procedimiento para eliminar la página actual.

‘Atajo de teclado Alt + d.

ActiveDocument.Bookmarks (” Página”). Range.Delete

End Sub

Como se mencionó, el marcador Página es una referencia especial a la página actual. La propiedad Range especifica la página y el método Delete la elimina. Si omite la propiedad Range, la declaración devuelve un error porque VBA intenta eliminar el marcador Page; no puede eliminarlo ni modificarlo porque es de solo lectura. Para eliminar un marcador, debe hacer referencia a él por su nombre y omitir la propiedad Range.

El procedimiento tiene dos limitaciones:

  • No eliminará páginas contiguas. Si selecciona varias páginas contiguas, el procedimiento elimina la primera página de la agrupación.
  • No eliminará la última página. Eliminará el contenido de la última página, pero no eliminará la página, por lo que no querrá ejecutar esto con la última página seleccionada.

Cómo agregar el procedimiento

Si está familiarizado con VBA, probablemente pueda omitir esta sección y continuar con la ejecución de la macro para ver cómo funciona.

Para ingresar al procedimiento, presione Alt + F11 para abrir el Editor de Visual Basic. En el Explorador de proyectos a la izquierda, seleccione ThisWorkbook para que pueda ejecutar el procedimiento en cualquier hoja. Puede ingresar el código manualmente o importar el archivo .cls descargable. Además, la macro se encuentra en los archivos .docm y .doc descargables. 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 ThisWorkbook. Si lo hace, se eliminarán los caracteres web fantasma que, de otro modo, podrían causar errores.

Si está utilizando una versión de cinta, asegúrese de guardar el libro de trabajo como un archivo habilitado para macros. Si está trabajando en la versión de menú, puede omitir este paso. Ahora, ejecutemos el procedimiento y veamos cómo funciona.

Cómo ejecutar el procedimiento de VBA para eliminar páginas en Word

Puede utilizar la pestaña Desarrollador para ejecutar el procedimiento, pero se necesitan varios clics. En su lugar, asignemos un atajo de teclado para ejecutarlo:

  1. Haga clic en el menú desplegable Barra de herramientas de acceso rápido y elija Más comandos.
  2. En el panel izquierdo, haga clic en Personalizar cinta.
  3. Haga clic en el botón Personalizar (Figura A) para crear el acceso directo.
  4. En el cuadro de diálogo resultante, elija Macros de la lista Categorías (está cerca del final de la lista).
  5. En el menú desplegable Guardar cambios en, elija el documento activo.
  6. Haga clic dentro del control Press New Shortcut Key y mantenga presionada la tecla Alt mientras presiona la tecla D , para una combinación de atajo de Alt + D (Figura B). Antes de hacer clic en Asignar, siempre marque el control Asignado actualmente a. En este caso, la combinación no está en uso. Cuando la combinación esté en uso, este control lo alertará; tendrá que decidir si utilizar una combinación diferente o escribir sobre la asignación actual.
  7. Haga clic en Asignar, haga clic en Cerrar y luego haga clic en Aceptar para volver al documento.

Figura A

Acceda al procedimiento DeleteCurrentPage para que pueda asignarle un atajo de teclado.

Figura B

Presione la tecla Alt y la tecla D para crear el atajo.

Ahora que tiene acceso rápido al procedimiento, ejecutémoslo. El archivo de demostración tiene cinco páginas, como puede ver en Figura C. El encabezado muestra los números de página, que se actualizarán en consecuencia cuando elimine una página. El número más grande es texto real, por lo que es visualmente evidente que realmente eliminó una página. Haga clic en cualquier página menos en la última y presione Alt + D. Como puede ver en Figura D, Eliminé la página 3.

Figura C

Veamos qué sucede con ambos conjuntos de números cuando ejecutamos el procedimiento.

Figura D

Eliminar una página; los números indicarán la página que eliminó.

El procedimiento en Listado A no eliminará la última página, pero eliminará cualquier contenido de la última página. Si no quiere tener que recordar esa peculiaridad, puede usar Listado B en lugar de. Las dos variables enteras almacenan el número de página actual y el número de la última página. Cuando no son iguales, se elimina la página actual. Cuando son iguales, no pasa nada.

Listado B

Sub DeleteCurrentPage ()

‘Ejecute el procedimiento para eliminar la página actual.

‘Atajo de teclado Alt + d.

Dim cur como entero

Atenuar último como entero

cur = Selection.Range.Information (wdActiveEndPageNumber)

last = Selection.Range.Information (_

wdNumberOfPagesInDocument)

‘Compara el número de página actual y el número de la última página.

‘Cuando no sean iguales, elimine la página actual.

Si cur <> dura Entonces

ActiveDocument.Bookmarks (” Página”). Range.Delete

Terminara si

End Sub

Ambos procedimientos son sencillos y probablemente tengan una audiencia limitada. Sin embargo, si elimina páginas con frecuencia, cualquiera de las dos le resultará útil.

Ver también

Leave a Comment