Cómo asignar una macro a un botón o una forma

Después de crear una macro tienes que ejecutarla (hacerla correr, como se dice en algunos lugares). Para ello la forma más rápida y ‘amigable’ para el inexperto es mediante un botón o una forma incrustada en la hoja. En este tutorial te muestro cómo hacerlo.
Asignar macro a botón Excel

Repasando algunos tutoriales de Ayuda Excel, me topé con este (5 formas de ejecutar procedimientos Sub) en el que te mostré algunas formas de ejecutar una macro guardada en un módulo:

  • Desde otro procedimiento.
  • Desde el editor de VBA.
  • Desde la ventana de Excel.
  • Con un atajo de teclado.
  • Desde controles de formulario y objetos.

Mi favorita de todas ellas, que además es la más rápida es la última. En este tutorial te mostraré un par de métodos para insertar una forma y un botón en Excel para, a continuación, asignarles una macro. Al finalizar, el libro estará listo para que hagas clic sobre el botón o la forma y se ejecute la macro. Para hacer las pruebas he creado un sencillo procedimiento que contiene dos acciones:

  1. Escribe el texto ‘Ayuda Excel’ en la celda C3 de la hoja activa
  2. Cambia el fondo de la celda a verde.
Sub AyudaExcel()
With ActiveSheet.Range("C3")
    .Value = "Ayuda Excel"
    .Interior.Color = vbGreen
End With
End Sub

El código anterior lo he ubicado en un módulo estándar en el editor de VBA.

Insertar una forma y asignarle una macro

En una hoja de Excel se pueden insertar botones de formulario (lo que realmente se conoce como botón). Personalmente me gustan más las formas para ejecutar macros en Excel. El motivo es porque pueden adoptar muy diferentes formatos (colores de fondo, bordes, colores de fuente) y se adaptan perfectamente al tema y al estilo de la hoja. Puedes insertar fácilmente una forma y hacer que parezca un botón.

¿Cómo insertar una forma?

  1. Dirígete a la ficha Insertar y haz clic en el botón Formas del grupo Ilustraciones.
  2. Haz clic en la opción Rectángulo (si lo deseas puedes seleccionar cualquier otra).
  1. Haz clic en la parte de la hoja donde quieras insertar el rectángulo seleccionado.
  2. Cambia el tamaño para adaptarlo al espacio que tengas disponible en la hoja.

Una vez insertada la forma (te recuerdo que puedes seleccionar cualquier tipo de forma de la galería), es hora de asignar la macro.

  1. Haz clic con el botón derecho del ratón sobre la forma.
  2. En el menú contextual haz clic en ‘Asignar macro’. Esto abrirá el cuadro de diálogo Asignar macro.
  1. En el cuadro de diálogo se muestra la lista de todas las macros del libro. Haz clic en la macro AyudaExcel para asignársela a la forma.
  1. Haz clic en el botón Aceptar.

¡Eso es todo!

A partir de ahora si pasas el puntero del ratón por encima de la forma, se mostrará el icono de la siguiente imagen, lo cual indica que ahora la forma es ‘clicable’.

Ya puedes hacer clic en la forma para ejecutar la macro.

La macro funciona correctamente pero es necesario escribir un texto en la forma para ayudar a otras personas a utilizarla. Puedes escribir por ejemplo ‘Haz clic aquí para ejecutar la macro’. Para eso haz clic en la forma con el botón derecho del ratón y selecciona la opción Editar texto. A continuación, escribe el texto que desees.

Ten en cuenta que no podrás hacer clic para ejecutar la macro cuando la forma esté seleccionada (es decir, cuando muestre un borde alrededor). Para hacerla funcional de nuevo presiona la tecla Esc o haz clic en cualquier otro lugar de la hoja.

Importante: Una vez que has asignado la macro a la forma, no podrás seleccionarla con el botón izquierdo del ratón (porque se ha convertido en ‘clicable’. En este caso, presiona la tecla Ctrl antes de hacer clic en la forma.

Cómo mantener la forma al ocultar las filas o columnas

Algo que pocos usuarios saben es que cuando se insertar una forma, ésta se sitúa encima de las celda (igual que un gráfico u otro objeto). Esto tiene el inconveniente de que cuando se cambian de tamaño las filas o columnas que hay por debajo de la forma, la forma también lo hace.

Observa qué ocurre cuando oculto las columnas D y E.

Para evitarlo, sigue estos pasos.

  1. Haz clic con el botón derecho del ratón en la forma.
  2. Selecciona la opción Formato de forma.
  1. En el panel que se despliega a la derecha (o en el cuadro de diálogo en caso de que uses Excel 2010 o anterior), selecciona el botón Tamaño y propiedades y, en la sección Propiedades selecciona la opción No mover ni cambiar tamaño con celdas.

Insertar un botón de formulario y asignarle una macro

En caso de no preocuparte por el formato del botón o te gustan los controles grises de los botones normales, puedes insertar un botón de formulario (o un botón ActiveX) y luego asignarle una macro.

En primer lugar necesitas tener activa la ficha Programador (Desarrollador) en tu cinta de opciones. En caso de no tenerla visible, te enseño a mostrarla en la Megaguía de Macros y VBA (descarga gratuita).

Una vez esté visible la ficha Programador, sigue estos pasos para insertar un botón y asignarle la macro:

  1. Haz clic en la ficha Programador.
  2. En el grupo Controles haz clic en el botón Insertar y, a continuación en el botón de formulario que se indica en la siguiente imagen:
  1. Haz clic en cualquier lugar de la hoja. Esto insertará el botón en el lugar donde hagas clic y abrirá automáticamente el cuadro de diálogo Asignar macro.
  2. En el cuadro se muestra la lista de macros que existen en el libro activo. Haz clic en el nombre de la macro que quieres asignar al botón. En este caso es 'AyudaExcel'.

Estos pasos insertarán un botón con la macro que selecciones en el cuadro.

Por defecto se trata de un botón pequeño y gris con el texto 'Botón'. Puedes modificar tanto el texto como el tamaño siguiendo los mismos pasos de la forma.

Una de las desventajas de usar este tipo de botones es que no tienes mucho control sobre el formato. Por ejemplo, no es posible cambiar el color gris del fondo. Si quieres echar un vistazo a las opciones que podrías modificar, haz clic con el botón derecho del ratón encima del botón y selecciona Formato de control.

Una cosa buena de este tipo de botones es que no se oculta ni cambia de tamaño cuando se ocultan o eliminan las filas o columnas que se encuentran debajo. Sin embargo, sí se moverá en caso de que cambies la altura de la fila o la anchura de la columna.

Si quieres evitar esto, en la pestaña Propiedades del cuadro Formato de control, tienes una opción similar a la que sirve para las formas.

Insertar un botón ActiveX y asignarle una macro

Además de los botones de formulario, Excel cuenta también con un botón ActiveX al que puedes asignar la macro.

En la mayoría de los casos, no vas a necesitar usar el control ActiveX, y te recomiendo que lo uses únicamente cuando entiendas completamente qué son este tipo de controles y sepas lo que estás haciendo (no son compatibles con Mac y existen también problemas de compatibilidad entre versiones de Excel de 32 y 64 bits).

Si quieres conocer la diferencia entre los controles de formulario de Excel y los controles ActiveX te recomiendo que eches un vistazo a la documentación de Microsoft.

Los botones ActiveX se insertan desde el mismo lugar que los de formulario, aunque, en este caso, al dibujarlo, no aparece el cuadro Asignar Macro. Para asignarle una macro debes hacer clic con el botón derecho del ratón encima del botón y seleccionar la opción Ver código. Cuando se muestre el editor de VBA debes pegar el código de la macro en la ventana código.

Resumen

Como has comprobado la manera mas rápida de ejecutar una macro es crear una forma o botón y asignarle una macro. En mi opinión las formas son mucho más flexibles en cuanto a las diferentes apariencias y colores que pueden adoptar, pero son algo menos intuitivas que los clásicos botones grises. La ventaja de usar formas y botones de formulario para ejecutar tus macros es que son compatibles con todo tipo de versiones de Excel (incluso con Mac) pero solo atienden a los eventos ‘Click’. Si deseas más flexibilidad de programación tendrás que utilizar controles ActiveX.

Cómo llegar a fin de mes con menos estrés gracias a Excel

Antes del día 15 puedes tener todos los objetivos mensuales completados. Y los que no, dejarlos programados para que se cumplan sin requerir de tu tiempo.

He preparado 7 de mis mejores trucos explicándote cómo lo hago. Deja tu correo abajo y te enviaré el primero de ellos.

Picture of Sergio

Sergio

Experto formador en Excel y Power BI con más de dos décadas de experiencia. Capacito a profesionales para optimizar su trabajo y ser más eficientes. Con un enfoque práctico y cercano, mi objetivo es ayudarte a dominar estas herramientas esenciales. Descubre mis formaciones.MVP de Microsoft 5 años consecutivos.

Cómo llegar a fin de mes con menos estrés gracias a Excel

Antes del día 15 puedes tener todos los objetivos mensuales completados. Y los que no, dejarlos programados para que se cumplan sin requerir de tu tiempo.

He preparado 7 de mis mejores trucos explicándote cómo lo hago. Deja tu correo abajo y te enviaré el primero de ellos.

Buscar

Últimos posts

¿De qué hablo aquí?

Cómo llegar a fin de mes con menos estrés gracias a Excel

Antes del día 15 puedes tener todos los objetivos mensuales completados. Y los que no, dejarlos programados para que se cumplan sin requerir de tu tiempo.

He preparado 7 de mis mejores trucos explicándote cómo lo hago. Deja tu correo abajo y te enviaré el primero de ellos.