Cómo ejecutar una macro en Excel

Aunque ejecutar una macro en Excel no es difícil, hay muchas formas de ejecutarlas. Algunas formas están destinadas a facilitar el uso de macros, mientras que otras formas pueden cambiar la forma en que un usuario interactúa con su libro de trabajo por completo. En este artículo, cubriremos algunas formas obvias de ejecutar macros como los controles de Botón y Lista de Macros, y algunas formas más oscuras como el Editor de VB y Eventos.

Primero: asegúrese de que las macros estén habilitadas

Las funciones de seguridad de Excel deshabilitarán las macros de forma predeterminada. Al abrir un libro de trabajo habilitado para macros, normalmente se les pregunta a los usuarios si desean habilitar macros.

Si no puede ejecutar macros, intente seguir estas instrucciones:

  • Guarde el libro de trabajo
  • Cierre el libro de trabajo, luego ábralo nuevamente
  • Cuando se cargue el libro de trabajo, verá un Advertencia de seguridad indicador (en la imagen de abajo). Hacer clic Contenido disponible.

Ejecutar una macro desde la lista de macros

Se puede acceder a una lista de macros desde la pestaña Ver. Para ver esta lista:

  • Selecciona el Vista pestaña
  • Haga clic en el botón etiquetado Macros para abrir la lista de macros

  • Seleccione la macro que desea ejecutar de la lista, luego haga clic en el Correr botón

También puede mostrar la Lista de macros en cualquier momento presionando ALT + F8.

Ejecutar una macro usando un atajo de teclado

Puede asignar un método abreviado de teclado a una macro que utilice con frecuencia, en forma de CTRL + o CTRL + MAYÚS +. Para hacer esto:

  • Abra la lista de macros (Vista > Macroso ALT + F8)
  • Seleccione la macro a la que desea aplicar un atajo
  • Hacer clic Opciones… para mostrar el Opciones de macro sub-diálogo

  • En el cuadro de texto debajo Tecla de acceso directo, escriba una sola letra y luego haga clic en OK. Si mantiene presionada la tecla MAYÚS mientras escribe la letra, la etiqueta junto al cuadro mostrará MAYÚS como parte del acceso directo

NOTA: se recomienda encarecidamente que utilice MAYÚS al crear una tecla de método abreviado. Excel usa atajos CTRL + para sí mismo, p. Ej. CTRL + C para copiar o CTRL + V para guardar. Si crea un atajo de macro usando estos u otros atajos de Excel, sobrescribirá el atajo de Excel hasta que reasigne el atajo de macro.

Ejecutar una macro desde el editor de VB

Las macros también se pueden ejecutar desde VB Editor. VB Editor le permite revisar el código de una macro y realizar los cambios que desee antes de ejecutarla.

Para ejecutar una macro en el Editor de VB:

  • Abra el Editor de VB (pestaña Desarrollador> Visual Basic o ALT + F11)

  • En el Proyecto ventana, haga doble clic en el módulo que contiene la macro que desea probar
  • En la ventana de código del módulo, coloca el cursor en cualquier lugar del código de la macro entre "Sub" y "End Sub"
  • Haga clic en el Correr en la barra de herramientas, o presione el atajo de teclado F5

Ejecutar una macro usando un botón o una forma

A menudo es útil tener un control en la hoja de trabajo en el que un usuario puede hacer clic para ejecutar una macro, como un control de botón o una forma. Esto es mucho más rápido para los usuarios finales que abrir listas de macros o buscar en el código de macro en el Editor de VB.

Puede encontrar información sobre cómo crear un botón o una forma en los que se puede hacer clic aquí: Agregar un botón y asignar una macro en Excel.

Ejecutar automáticamente una macro usando eventos en VBA

Es posible ejecutar una macro cuando algo sucede en Excel, por ejemplo, cuando se abre un libro de trabajo o cuando se cambia el valor de una celda. Estos se llaman Eventos, y puede escribir código VBA para que llamen macros o realicen otras operaciones.

Para escribir código para un evento, necesitará usar el Editor de VB. Por ejemplo, para ver eventos para el libro de trabajo:

  • Abra el editor de VB (ALT + F11)
  • Haga doble clic en el Este libro de trabajo objeto en el editor de VB Ventana de proyecto
  • Elija "Libro de trabajo" en el menú desplegable en la parte superior izquierda de la ventana del código
  • Haga clic en el menú desplegable de la derecha para ver una lista de eventos.

A continuación, se muestra una muestra pequeña pero útil de eventos de Excel desde los que puede ejecutar macros.

Workbook_Open ()

El evento Workbook_Open () se activa cuando se abre un libro. Si recibe la advertencia de seguridad después de abrir un libro de trabajo, este evento se activa después de hacer clic en "Habilitar contenido".

12345 Private Sub Workbook_Open ()MsgBox "¡Libro de trabajo abierto!"End Sub

Workbook_BeforeClose (Cancelar como booleano)

Workbook_BeforeClose () se activa cuando el usuario intenta cerrar el libro. Ocurre antes de que se realicen las comprobaciones para ver si es necesario guardar el libro.

los Cancelar El parámetro se puede establecer en Verdadero para evitar que se cierre el libro.

123456789 Private Sub Workbook_BeforeClose (Cancelar como booleano)Si MsgBox ("¿Está seguro?", VbYesNo + vbQuestion, "Cerrar") = vbNo EntoncesCancelar = VerdaderoTerminara siEnd Sub

Worksheet_Change (ByVal Target As Range)

Worksheet_Change () se activa cuando se cambia el valor de una celda, ya sea que lo cambie una macro, una operación de copiar / pegar o un enlace externo. Sin embargo, no se activa cuando se vuelve a calcular un valor mediante una fórmula.

los Objetivo El parámetro representa las celdas cuyo valor ha cambiado.

Si cambia el valor de otras celdas dentro de este evento, el evento se activará nuevamente. Esto posiblemente puede causar un bucle infinito. Si necesita cambiar los valores de celda sin desencadenar este evento, considere configurar Application.EnableEvents para Falso primero, y luego vuelva a configurarlo Cierto al final del procedimiento del evento.

123456789 Private Sub Worksheet_Change (ByVal Target As Range)MsgBox "Celdas cambiadas:" & Target.AddressApplication.EnableEvents = FalseRango ("A2"). Valor = Rango ("A2"). Valor + Target.Cells.CountApplication.EnableEvents = TrueEnd Sub

Worksheet_SelectionChange (ByVal Target As Range)

Este evento se activa cada vez que se seleccionan diferentes celdas con la retícula de orientación. El parámetro Destino representa las nuevas celdas que se han seleccionado.

También puede activar este evento con código, es decir, "Rango (" A1 "). Seleccionar". Al igual que con Worksheet_Change (), debe tener cuidado al seleccionar otras celdas dentro de este evento, ya que puede causar un bucle infinito. Utilice Application.EnableEvents.

123456789 Private Sub Worksheet_SelectionChange (ByVal Target As Range)Si Target.Address = "$ A $ 1", entoncesMsgBox "Cursor en posición inicial".Terminara siEnd Sub

Detener una macro en ejecución

Una macro en ejecución se puede interrumpir presionando ESC o CTRL + INTERRUPCIÓN. De forma predeterminada, una macro interrumpida mostrará el siguiente cuadro de diálogo:

Haciendo clic Fin detendrá la macro, mientras Continuar lo reanudará. Haciendo clic Depurar abrirá la macro en el VB Editor y enfocará la línea de código en la que se pausó la ejecución. (Dentro del VB Editor puede detener o reanudar la macro usando los botones Ejecutar o Finalizar en la barra de herramientas).

Application.EnableCancelKey

Puede deshabilitar la capacidad de detener una macro con ESC o CTRL + BREAK configurando el Application.EnableCancelKey propiedad. Esta propiedad tiene tres valores posibles:

  • xlInterrumpir - este es el valor predeterminado, lo que hace que Excel muestre el cuadro de diálogo de arriba
  • xlDisabled - elimina la capacidad de detener una macro en ejecución
  • xlErrorHandler - cuando se realiza un intento de interrupción, se genera un error que se puede manejar en código

Siempre que se detiene la ejecución del código, Excel siempre restablece el valor de Application.EnableCancelKey a xlInterrumpir.

Una buena razón para utilizar esta propiedad es la seguridad. Por ejemplo, si tuviera una macro que desprotegiera temporalmente partes de su libro de trabajo, un usuario podría potencialmente detener la macro inmediatamente después de la desprotección y obtener acceso al contenido que no pretendía que tuvieran. Al configurar Application.EnableCancelKey, puede deshabilitar completamente su capacidad para hacer esto, o manejar su interrupción con elegancia con un controlador de errores que vuelve a proteger el libro de trabajo.

1234567891011 Sub UpdateBaseData (ByVal NewData como rango, ByVal Target como rango)Application.EnableCancelKey = xlDisabledTarget.Worksheet.Unprotect "MyPassword"NewData.Copy TargetTarget.Worksheet.Protect "Mi contraseña"Application.EnableCancelKey = xlInterruptEnd Sub

Forzar el cierre de Excel con el Administrador de tareas de Windows

Si la macro se ha "bloqueado" o Excel está demasiado ocupado para reconocer un intento de interrupción, es posible que deba forzar el cierre de Excel con la Administrador de tareas de Windows. (NOTA: si hace esto, puede perder cualquier trabajo que no haya guardado y tener que confiar en una versión de recuperación automática de su libro de trabajo).

  • Abra el Administrador de tareas directamente usando CTRL + MAYÚS + ESC
  • Selecciona el "Procesos" pestaña
  • Expanda el elemento "Microsoft Excel" para mostrar todos los libros de trabajo.
  • Seleccione el libro de trabajo que desea cerrar, luego haga clic en Tarea final en la esquina inferior derecha

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave