Cómo asignar una macro a un botón en Excel (Guía fácil)

Si bien hay muchas formas diferentes de ejecutar una macro en Excel, ninguno de esos métodos puede ser tan fácil y fácil de usar como hacer clic en un botón.

Y para que eso funcione, primero debe asignar una macro a un botón.

En este tutorial, le mostraré un par de formas de insertar un botón en Excel y luego asignar una macro a ese botón (o forma). Una vez hecho esto, tan pronto como un usuario haga clic en el botón, se ejecutará el código macro VBA.

Para el propósito de este tutorial, usaré el siguiente código macro de VBA (que simplemente selecciona la celda A1 en la hoja activa e ingresa el texto "Buenos días" y la colorea en rojo).

Sub GoodMorning () With ActiveSheet.Range ("A1") .Value = "Buenos días" .Interior.Color = vbRed Fin con final Sub

El código de VBA anterior se coloca en un módulo regular en el Editor de VB

¡Ahora profundicemos y veamos cómo puede asignar esta macro a un botón o forma en Excel!

Insertar una forma y asignar macro a esa forma

Si bien hay botones dedicados que puede insertar en la hoja de trabajo y luego asignarle la macro, primero cubriré cómo asignar una macro a una forma.

Personalmente, me encanta este método y lo prefiero al resto de los dos métodos que se tratan más adelante. Puede insertar fácilmente una forma (cuadrada o rectangular) y hacer que parezca un botón.

Y como es una forma, puede formatearla fácilmente para que se vea perfecta con su formato actual o con los colores de su marca.

A continuación se muestran los pasos para insertar una forma en Excel:

  1. Haga clic en la pestaña Insertar
  2. En el grupo de ilustraciones, haga clic en Formas
  3. En las opciones de Formas, haga clic en la opción Rectángulo. Notarás que tu cursor cambia a un ícono más
  4. Haga clic en cualquier parte de la hoja de trabajo. Esto insertará una forma de rectángulo en la hoja de trabajo.
  5. Cambia el tamaño del rectángulo y dale formato (dale un borde, color, sombra si quieres).

Una vez que haya realizado los pasos anteriores, tendrá una forma de rectángulo en la hoja de trabajo, y ahora asignaremos una macro a esta forma.

Tenga en cuenta que he insertado una forma de rectángulo en este ejemplo, pero puede insertar la forma que desee (como un círculo, un triángulo o una flecha). Prefiero usar un rectángulo y parece un botón y es más intuitivo.

Ahora veamos cómo asignar una macro a esta forma.

  1. Haga clic con el botón derecho en la forma a la que desea asignar la macro
  2. En las opciones del menú que aparecen, haga clic en "Asignar macro". Esto abrirá el cuadro de diálogo de asignación de macro.
  3. En el cuadro de diálogo Asignar macro, verá una lista de todas las macros que tiene en el libro.
  4. Haga clic en el nombre de la macro que desea asignar a esta forma. En este ejemplo, haré clic en la macro llamada "Buenos días
  5. Haga clic en Aceptar.

¡Eso es!

La macro seleccionada ahora se ha asignado a la forma.

Ahora, cuando pase el cursor sobre la forma, mostrará el icono de la mano. lo que indica que ahora se puede hacer clic en esta forma.

Y ahora, si hace clic en la forma, ejecutará la macro asignada.

Puede escribir cualquier texto dentro de la forma para hacerlo más intuitivo (como "Haga clic aquí para ejecutar la macro"). Para hacer esto. haga clic derecho en la forma y luego haga clic en Editar texto. Ahora puede escribir dentro de la forma del cuadro de texto.

Tenga en cuenta que no podrá hacer clic y ejecutar la macro cuando se haya seleccionado la forma (es decir, verá un borde alrededor de la forma que aparece cuando la selecciona). Para que se pueda hacer clic en ella, presione la tecla Escape o haga clic en cualquier lugar. en la hoja de trabajo.

Además, cuando ya haya asignado la macro a la forma, no podrá seleccionarla con la tecla izquierda del mouse (ya que se puede hacer clic en ella y hacer clic con el botón izquierdo ahora ejecutará la macro). En ese caso, seleccione la forma, mantenga presionada la tecla Control y luego presione la tecla izquierda.

Mantener la forma visible cuando oculta / cambia el tamaño de filas / columnas

En Excel. cuando inserta una forma, se coloca sobre las celdas, como un gráfico / objeto.

Esto también tiene el inconveniente de que cuando cambia el tamaño u oculta las filas / columnas que tienen la forma sobre ellas, la forma también sigue su ejemplo.

En el siguiente ejemplo, la forma se oculta cuando oculto la columna en la que está colocada.

Si no desea que esto suceda, siga los pasos a continuación:

  1. Haga clic derecho en la forma
  2. Haga clic en Formatear forma
  3. En el panel Formato de forma (o cuadro de diálogo en caso de que esté usando Excel 2010 o versiones anteriores), seleccione Tamaño y propiedades
  4. En las opciones de Propiedades, seleccione la opción "No mover ni cambiar el tamaño con celdas"
  5. Cerrar el panel (o cuadro de diálogo)

Ahora, cuando cambie el tamaño de las filas / columnas o las oculte, la forma permanecerá en su lugar.

Asignar una macro al botón de control de formulario

Si no le preocupa demasiado el formato del botón y está de acuerdo con los botones grises normales, puede insertarlo rápidamente desde el control de formulario (o el control ActiveX como se muestra a continuación) y luego asignarle una macro.

Para que esto funcione, necesitará tener la pestaña Desarrollador en su cinta. Si no lo tiene, aquí hay un tutorial detallado paso a paso sobre cómo obtener la pestaña de desarrollador en la cinta de Excel.

Una vez que tenga la pestaña de desarrollador visible, puede usar los pasos a continuación para insertar rápidamente un botón y asignarle una macro:

  1. Haga clic en la pestaña Desarrollador
  2. En el grupo Control, haga clic en Insertar.
  3. En las opciones que aparecen, en las opciones de Controles de formulario, haga clic en la opción Botón (Control de formulario).
  4. Haga clic en cualquier parte de la hoja de trabajo. Esto insertará el botón donde sea que haga clic y abrirá automáticamente el cuadro de diálogo "Asignar macro".
  5. En el cuadro de diálogo Asignar macro, verá una lista de todas las macros que tiene en el libro.
  6. Haga clic en el nombre de la macro que desea asignar a este botón. En este ejemplo, haré clic en la macro llamada "Buenos días".
  7. Haga clic en Aceptar.

Los pasos anteriores insertarían un botón que tiene asignada la macro especificada.

De forma predeterminada, sería un pequeño botón con texto como "Botón" escrito en él. Puede cambiar el texto a lo que desee y también puede cambiar la forma del botón (arrastrando los bordes).

Dado que este es un objeto que se coloca sobre la hoja de trabajo (al igual que las formas / gráficos), puede arrastrarlo y colocarlo en cualquier lugar de la hoja de trabajo.

Un inconveniente de usar el botón Control de formulario es que no tiene mucho control sobre el formato. Por ejemplo, no puede cambiar el color de gris a otro.

Aunque hay un poco de formato que puede hacer con un botón de control de formulario, no se parece en nada a lo que puede hacer con las formas.

Obtiene estas opciones de formato de botón cuando hace clic derecho en el botón y luego hace clic en Control de formato.

Esto abrirá el cuadro de diálogo Control de formato donde puede cambiar el tipo / color de fuente, tamaño, alineación, etc.

Una cosa buena de este botón es que no se oculta ni cambia de tamaño cuando oculta las filas / columnas o las cambia de tamaño. Sin embargo, se moverá en caso de que cambie la altura o el ancho o la fila / columna sobre la que se coloca el botón.

En caso de que no desee que el botón permanezca en su lugar, puede cambiar la configuración siguiendo los pasos a continuación:

  1. Haga clic derecho en el botón
  2. Haga clic en Control de formato
  3. Haga clic en la pestaña Propiedades
  4. Seleccione la opción "No mover ni cambiar el tamaño con celdas"
  5. Haga clic en Aceptar

Asignar una macro a un botón de control ActiveX

Además del botón Control de formulario, también hay un botón de control ActiveX al que puede asignar una macro.

En la mayoría de los casos, no necesitará usar el botón de control ActiveX, y le recomiendo que lo use solo cuando comprenda completamente qué es y sepa lo que está haciendo.

¿Se pregunta por qué tenemos dos tipos diferentes de botones: Control de formulario y ActiveX? Mientras que los controles de formulario están integrados en la aplicación de Excel, ActiveX se carga desde una DLL separada (Bibliotecas de vínculos dinámicos). Esto hace que los botones de control de formulario sean mucho más robustos y fiables en comparación con los botones ActiveX. Puede leer más sobre esta diferencia aquí en una publicación en StackOverflow.

Esto también, a veces, hace que ActiveX sea un poco defectuoso e impredecible. Entonces, aunque lo cubro en este tutorial, no recomiendo usar el botón ActiveX y asignarle una macro.

Para insertar un botón ActiveX y luego asignarle una macro, siga los pasos a continuación:

  1. Haga clic en la pestaña Desarrollador
  2. En el grupo Control, haga clic en Insertar.
  3. En las opciones que aparecen, en las opciones de Controles ActiveX, haga clic en la opción Botón de comando.
  4. Haga clic en cualquier parte de la hoja de trabajo. Esto insertará el botón donde sea que haga clic.
  5. Haga doble clic en el botón y se abrirá el backend del Editor VB donde puede colocar el código para el botón ActiveX

Con el control ActiveX, obtiene mucha más flexibilidad con un solo botón. Por ejemplo, puede especificar que se ejecute una macro cuando simplemente haga clic en el botón una vez y otra macro cuando haga doble clic o incluso otra cuando use la tecla de flecha arriba / abajo.

Una vez más, no es algo que deba utilizar en su trabajo habitual.

Otra opción que puede considerar (cuando trabaja con botones / formas y le asigna macros) es agregar la macro a la barra de herramientas de acceso rápido. De esa manera, puede ejecutar la macro con un solo clic y siempre estará visible en el QAT.

Espero que hayas encontrado útil este tutorial. Si está interesado en aprender VBA, puede consultar tutoriales de Excel VBA más detallados aquí.

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

wave wave wave wave wave