Está trabajando en un documento de Word cuando una macro comienza a ejecutarse y no se detiene. La macro puede estar atrapada en un bucle infinito, procesando un gran volumen de datos o encontrando un error que le impide completarse normalmente. Este artículo explica las tres formas confiables de interrumpir una macro en ejecución en Word: usar el atajo de teclado, forzar a Word al modo de interrupción y finalizar el proceso de Word como último recurso. Aprenderá las pulsaciones exactas y los pasos para cada método, incluido cómo evitar que las macros se ejecuten de nuevo hasta que esté listo.
Puntos clave: Cómo interrumpir una macro en Word
- Ctrl+Inter (o Ctrl+Pausa/Inter): El atajo de teclado principal para interrumpir una macro en ejecución y abrir el editor de VBA en modo de depuración.
- Ctrl+Alt+Shift+Escape: Fuerza a Word a interrumpir la ejecución de la macro y muestra el editor de VBA con la línea actual resaltada, incluso cuando Ctrl+Inter falla.
- Administrador de tareas > Finalizar tarea: El último recurso que finaliza por completo el proceso de Word, descartando los cambios no guardados, cuando la macro bloquea toda otra entrada.
Por qué una macro no se detiene normalmente
Cuando ejecuta una macro en Word, el código VBA se ejecuta dentro del proceso de la aplicación Word. La macro se ejecuta en el mismo subproceso que la interfaz de usuario de Word. Esto significa que si la macro entra en un bucle infinito, realiza un cálculo muy largo o espera un recurso que nunca está disponible, bloquea la interfaz de Word para que no responda a la entrada normal. La cinta de opciones, los menús e incluso la tecla Escape pueden parecer que no responden. La macro no se detiene porque Word está ocupado ejecutando el código y no puede procesar nuevos comandos del usuario hasta que el procedimiento actual finalice o se interrumpa explícitamente. Comprender este comportamiento de un solo subproceso es la clave para saber por qué solo pulsaciones específicas pueden interrumpir la ejecución.
Tres métodos para detener una macro en ejecución
El método que funciona depende de si la macro permite leer el búfer del teclado, si el editor de VBA ya está abierto y de cuán poco responde Word. Use estos métodos en el orden presentado.
Método 1: Presione Ctrl+Inter o Ctrl+Pausa/Inter
- Localice la tecla Inter en su teclado
En la mayoría de los teclados de tamaño completo, la tecla Inter está impresa en la fila superior, a menudo compartiendo la tecla Pausa. En los portátiles, puede ser una función secundaria en la tecla F12 o Insert, activada presionando la tecla Fn junto con la tecla marcada. Busque el texto “Inter” o “Pausa/Inter” en la fila superior de teclas. - Presione Ctrl+Inter (o Ctrl+Fn+Inter en portátiles)
Mientras la macro se ejecuta, mantenga presionada la tecla Ctrl y presione la tecla Inter. Si su teclado tiene una tecla dedicada Pausa/Inter, presione Ctrl+Pausa/Inter. Esto envía una señal de interrupción al entorno de ejecución de VBA. - Observe la apertura del editor de VBA
Si la interrupción es exitosa, se abre la ventana del editor de Visual Basic para Aplicaciones. La ejecución de la macro se detiene en la línea actual del código, que se resalta en amarillo. Luego puede presionar F5 para reanudar o presionar Shift+F8 para recorrer el código restante línea por línea. - Si el editor de VBA no aparece
Espere unos segundos e inténtelo de nuevo. Algunas macros deshabilitan la tecla de interrupción usando la propiedad Application.EnableCancelKey. Si el autor de la macro estableció EnableCancelKey en xlDisabled (o el equivalente en VBA), Ctrl+Inter se ignora. Pase al Método 2.
Método 2: Presione Ctrl+Alt+Shift+Escape
- Presione Ctrl+Alt+Shift+Escape simultáneamente
Mantenga presionadas Ctrl, Alt y Shift, luego presione Escape. Esta combinación de teclas fuerza a Word a interrumpir la macro actual y abrir el editor de VBA, incluso si la macro ha deshabilitado la tecla de interrupción normal. Este método funciona porque envía una interrupción de mayor prioridad al motor de VBA que el código de la macro no puede deshabilitar. - Confirme que el editor de VBA está abierto
El editor de VBA debería aparecer con la macro en pausa en la línea actual. La ventana de código muestra un resaltado amarillo en la línea que se estaba ejecutando cuando ocurrió la interrupción. - Use la ventana Inmediato para detener la macro
Si desea detener la macro por completo sin reanudarla, abra la ventana Inmediato presionando Ctrl+G. Escriba el comandoEndy presione Entrar. Esto termina todo el código VBA en ejecución en el documento actual.
Método 3: Finalizar el proceso de Word mediante el Administrador de tareas
- Abra el Administrador de tareas
Presione Ctrl+Shift+Escape para abrir el Administrador de tareas directamente. Si eso no funciona, presione Ctrl+Alt+Supr y seleccione Administrador de tareas en la pantalla que aparece. - Localice el proceso de Word
En la pestaña Procesos, busque Microsoft Word o WINWORD.EXE. Si tiene varias ventanas de Word abiertas, puede haber varias instancias. Seleccione la que está ejecutando la macro bloqueada. - Seleccione Finalizar tarea
Haga clic en el proceso y luego haga clic en Finalizar tarea. Word se cierra inmediatamente. Se pierden los cambios no guardados en el documento. Este método es el último recurso porque no le permite guardar su trabajo ni examinar el código de la macro. - Reinicie Word y deshabilite las macros temporalmente
Después de finalizar el proceso, abra Word de nuevo. Antes de abrir el documento que contiene la macro problemática, vaya a Archivo > Opciones > Centro de confianza > Configuración del Centro de confianza > Configuración de macros. Seleccione Deshabilitar todas las macros sin notificación. Esto evita que la macro se ejecute automáticamente al abrir el documento, lo que le permite editar o eliminar el código de la macro en el editor de VBA manualmente.
Evitar que las macros se ejecuten de forma incontrolada
Si trabaja con frecuencia con documentos que contienen macros, puede tomar medidas para evitar quedarse atascado de nuevo. El método más eficaz es establecer el nivel de seguridad de macros en Deshabilitar todas las macros con notificación. Esta configuración muestra una barra de advertencia de seguridad debajo de la cinta de opciones cuando un documento contiene macros. Luego puede elegir habilitar las macros solo cuando confíe en el origen. Para cambiar esta configuración, vaya a Archivo > Opciones > Centro de confianza > Configuración del Centro de confianza > Configuración de macros y seleccione Deshabilitar todas las macros con notificación. Esto no detiene una macro una vez que se está ejecutando, pero evita que cualquier macro se inicie automáticamente, dándole control sobre cuándo y si ejecutar el código.
Problemas comunes al detener una macro
Ctrl+Inter no funciona y Word está completamente congelado
Cuando la macro ha deshabilitado la tecla de interrupción y la interfaz de Word no responde, Ctrl+Alt+Shift+Escape también puede fallar porque Word no puede procesar las pulsaciones en absoluto. En esta situación, el Administrador de tareas es la única opción. Después de finalizar la tarea, revise el código VBA del documento en busca de cualquier línea que establezca Application.EnableCancelKey = xlDisabled y elimine o comente esa línea. Esto evita que el mismo problema vuelva a ocurrir con esa macro.
La macro se reanuda automáticamente después de la interrupción
Si interrumpe en el editor de VBA usando Ctrl+Inter o Ctrl+Alt+Shift+Escape, la macro puede reanudarse si presiona F5 accidentalmente o hace clic en el botón Ejecutar. Para detener la macro permanentemente, use la ventana Inmediato (Ctrl+G) y escriba End. Como alternativa, establezca la macro en modo de interrupción y luego presione F8 repetidamente para recorrer el código hasta llegar a la línea End Sub o End Function, luego presione F5 para dejar que finalice normalmente.
No se puede abrir el editor de VBA después de finalizar la tarea
Después de finalizar el proceso de Word, el editor de VBA no se abre porque Word se ha cerrado. Para editar el código de la macro, vuelva a abrir el documento con las macros deshabilitadas. Luego presione Alt+F11 para abrir el editor de VBA manualmente. Navegue hasta el módulo que contiene la macro problemática y edite o elimine el código. Guarde el documento como un archivo .docx sin macros para eliminar todas las macros permanentemente.
Atajos de teclado para detener macros: Comparación
| Atajo | Efecto | Cuándo usarlo |
|---|---|---|
| Ctrl+Inter | Interrumpe la macro y abre el editor de VBA | Primer intento; funciona en la mayoría de los teclados a menos que la macro deshabilite la tecla de interrupción |
| Ctrl+Alt+Shift+Escape | Fuerza la interrupción de la macro incluso si la tecla de interrupción está deshabilitada | Cuando Ctrl+Inter falla y Word todavía responde parcialmente |
| Administrador de tareas Finalizar tarea | Finaliza el proceso de Word; descarta los cambios no guardados | Cuando Word está completamente congelado y ninguna pulsación funciona |
Ahora conoce tres métodos distintos para detener una macro en ejecución en Word. Comience con Ctrl+Inter. Si eso falla, use Ctrl+Alt+Shift+Escape. Use el Administrador de tareas solo como último recurso porque descarta el trabajo no guardado. Para evitar problemas futuros, establezca la seguridad de macros en Deshabilitar todas las macros con notificación y elimine cualquier línea Application.EnableCancelKey = xlDisabled de su código VBA. Como consejo avanzado, puede agregar una instrucción DoEvents dentro de bucles largos en sus propias macros para que la tecla de interrupción siga respondiendo durante la ejecución.