Asignando Macro a control de formulario

ObjetivosAprenderás a asignar una macro a un control de formulario.

Vamos a rizar el rizo, se te ocurre que en lugar de que el usuario tenga que ejecutar la macro, podrías asignar dicha macro a un control del formulario, por ejemplo un botón, el cual al pulsarlo ejecute la macro.

De este modo, lo primero que tienes que hacer es abrir el documento Pedido.sxw que es donde guardaste la macro, e insertar un botón de formulario. Para ello de la barra de funciones de formulario activas la vista diseño, con la intención de insertar el nuevo control, de este modo seleccionas Botón y dibujas el mismo al final del documento.

Inserción del control Botón en la Plantilla

Una vez insertado el botón tendremos que editar sus propiedades con dos intenciones, una para cambiar el título Botón por Guardar Pedido, y en segundo lugar, para asignarle a este botón la macro que grabaste antes.

Fragmento de la pestaña General del control Botón. Pulse en la imagen para visualizar al completo la pestaña Botón

Como ya sabes para abrir las propiedades de un control debes de pulsar el icono Propiedades del Control, apareciéndonos la ventana de propiedades del botón, ahora ya puedes cambiar la propiedad Título de la pestaña General, insertando el valor Guardar Pedido.

A continuación vamos a asignar la macro al control, para ello te sitúas en la pestaña Acontecimientos, en la cual aparecen distintas acciones relacionadas con el control que puedes configurar mediante macros. Recuerda, que queríamos que al pulsar el cliente el botón se guardase automáticamente el pedido en un archivo, pues bien, para ello vamos a definir el acontecimiento Al ejecutar, pulsando el botón situado al final de este campo.

Asignación de la macro GrabarPedido al acontecimiento Al Ejecutar. Pulse en la imagen para ampliarla

Al pulsar dicho botón se nos abrirá el cuadro de diálogo Asignar macro, en el cual aparecen todos los acontecimientos del control y todas las macros que tiene asignada. Pues bien, el siguiente paso será buscar la macro que queremos asignar, recuerda que las macros por defecto se guardaban en la carpeta Standard, y a su vez en la subcarpeta Module 1, por lo tanto nos vamos a dicha carpeta para seleccionar la macro que deseo.

Por lo tanto, ya solo nos queda seleccionar la macro GrabarPedido, y pulsar el botón Asignar, comprobando efectivamente en el bloque superior como al acontecimiento se le ha asignado la macro, con lo que pulsaremos por último el botón Aceptar, volviendo de nuevo a la pestaña Acontecimientos.

Acontecimiento del control botón asociado a una macro. Pulse en la imagen para visualizar al completo la pestaña Acontecimientos

Una vez que el acontecimiento Al ejecutar ya tiene asignada la macro GrabarPedido, cerraremos la ventana de propiedades y guardaremos los cambios en la plantilla, para ello nos iremos al menú Archivo, seleccionaremos la opción Plantillas, y después pulsaremos la opción Grabar, con lo que se nos abrirá el cuadro de diálogo Plantillas. Como hemos hecho cambios en la plantilla la grabaremos con otro nombre, para ello en el campo Plantilla nueva, escribiré el nombre PedidoConBotón y pulsaré el botón Aceptar.

Autoevaluacion

Acontecimientos del control

¿Cuál de los siguientes propiedades es un acontecimiento de un control de formulario?

a)

Recepción del foco

b)

Nombre

c)

Activado

d)

Juego de caracteres

Comprueba tu respuesta

Truco Si quieras guardar ahora este documento como plantilla de formulario pedido tendrías que irte al menú Archivo, y situarte en la opción Plantilla, y posteriormente pulsar la opción Guardar.

Fichero Visualice el resultado de la construcción de la plantilla PedidoConBoton, después de insertarle un botón asociado a una macro.

DemostracionDEMO: Observe como asignar una macro a un control

  1. Abrimos el documento Pedido.sxw donde tengamos guardada la macro GrabarPedido.
  2. Abro la vista diseño del formulario.
  3. Selecciono el icono Botón de la barra de funciones de formulario y lo dibujo en el documento.
  4. Pulso en el icono Propiedades del control.
  5. Vete a la pestaña Acontecimientos, y sitúate en la propiedad Al ejecutar.
  6. De la macros del documento, vete a la carpeta denominada Standard, y después a Module 1.
  7. Selecciona la macro GrabarPedido, y pulsa en el botón Asignar, y después Aceptar.