| 019 | Crear macro con referencias relativas |
CUANDO ACTIVA LA OPCIÓN USAR REFERENCIAS relativas del Programador, las referencias a saldos o rangos de celdas son también relativas. Se expresan en dos valores, uno para las columnas y otro para las filas, que pueden ser positivos o negativos.
1 Antes de crear una macro de referencia relativa, analicemos el código de la macro de referencia absoluta que acaba de crear. En su primera instrucción se indica que se seleccione una celda concreta, en este caso A1. En la segunda se indica que se introduzca en la celda activa el texto entre comillas, Lunes y en la tercera que se aplique el autorelleno predeterminado al rango de celdas A1 a A7, que son las seleccionadas para terminar. Es posible que tenga que reducir el tamaño de las ventanas de la derecha para poder leer correctamente el código.
2 Ahora, en el documento abierto en Excel, inserte una hoja llamada Relativas y seleccione una celda distinta a la A1.
3 En el grupo Código de la ficha Programación de Visual Basic, active el comando Usar referencias relativas con un clic.
4 Pulse el botón Grabar macro y cree una nueva macro llamada Días_relativos. La herramienta Usar referencias relativas se muestra destacada en color amarillo cuando está activa y hace que las instrucciones se ejecuten sobre celdas en la misma posición relativa.
5 Compruebe en la ventana Código de VBA que en este caso la nueva subrutina se crea directamente en el mismo Módulo 2 que tenía abierto en pantalla.
6 Pulse en la celda A1 e introduzca el texto Lunes y pulse el botón Introducir de la barra de fórmulas.
7 Compruebe en el código que la referencia a la celda A1 se indica en relación a la celda seleccionada inicialmente, en nuestro caso ActiveCell.Offset(-12,0) que indica que se trata de 12 filas hacia arriba y la misma columna. A continuación se indica la celda efectivamente seleccionada.
8 Arrastre la esquina inferior derecha para volver a autocompletar los nombres de los siete días de la semana, detenga la grabación y compruebe el código.
9 Seleccione la segunda subrutina y córtela pulsando Ctrl+X.
10 Inserte un nuevo módulo en el Proyecto personal y pegue en su ventana de códigos el contenido copiado.
11 Inserte una nueva hoja en blanco en el libro Prácticas1 y seleccione una celda distinta a la A1.
12 Pulse el botón Ejecutar macro de la barra de herramientas de VBA y en el cuadro Macros seleccione la macro Días absolutos.
13 Se insertan los días de la semana en las mismas celdas en las que lo hizo al grabar la macro. Seleccione alguna celda y ejecute ahora la macro Días_relativo para comprobar cómo en este caso el resultado es distinto. Puede grabar distintos códigos en un mismo módulo. En este caso el texto End Sub marca el final del primero. También puede escribir manualmente varias subrutinas en un mismo módulo.
| 020 | Firmar una macro |
VISUAL BASIC PROPORCIONA A LOS USUARIOS la capacidad de firmar digitalmente una macro. Si la macro es modificada, la firma desaparece, de modo que su presencia es una garantía de que ésta no ha sido alterada. Para este ejercicio crearemos la firma desde Excel y luego la insertaremos en Visual Basic.
1 Con el libro Prácticas1 abierto en pantalla, despliegue el menú Archivo y en la ficha Información de la backstage, pulse el botón Proteger libro y seleccione la opción Agregar firma digital.
2 Aparece el cuadro Obtener un id: digital. Si escoge la opción Obtener un id. digital de un colaborador de Microsoft será dirigido a una página que le proporcionará información sobre los proveedores recomendados por Microsoft. Seleccione la opción Crear su propio id. digital y pulse Aceptar. La aplicación recomienda el uso de proveedores de servicios de firma digital cuando sea necesaria una garantía legal.
3 Complete los datos solicitados en el cuadro de diálogo Crear un id. digital y pulse el botón Aceptar para generar la identificación digital.
4 El cuadro de diálogo Firmar le permite indicar la razón por la que va a firmar el documento así como agregarle la firma que ha creado en pasos anteriores y que aparece ya en el apartado Firmar como. Escriba una razón y pulse el botón Firmar. La firma de un documento certifica que este no ha sido modificado después de marcado como final por el autor.
5 En la vista Información se ha añadido un comando llamado Ver firmas y se advierte que la presentación ha sido firmada y marcada como final, por lo que no debe ser editada. Pulse la pestaña Inicio y, para eliminar la firma, pulse el botón Editar de todos modos y confirme que desea eliminar las firmas.
6 Una vez ha creado su firma personal, esta queda disponible para ser insertada en cualquier lugar. Acceda a Visual Basic.
7 Abra el módulo 3 del libro Personal, que contiene la macro Días_relativo.
8 Despliegue el menú Herramientas y seleccione la opción Firma digital.
9 El cuadro Firma digital le indica en primer lugar que este proyecto no está firmado. Pulse el botón Elegir. El cuadro Firma digital indicará luego el nombre de la firma de la macro.
10 El cuadro Seleccione un certificado le permite elegir alguno de los certificados de firma personal disponibles en su equipo. Pulse el vínculo Haga clic aquí para ver las propiedades. El vínculo Haga clic aquí para ver las propiedades, le permite acceder al cuadro Detalles del certificado, que indica la fecha de duración de la firma así como otros detalles técnicos.
11 En la ficha General del cuadro en pantalla se informa sobre la validez del certificado. Pulse el botón Aceptar de éste y de los dos cuadros que han quedado en segundo plano.
12 Despliegue el menú Herramientas y escoja de nuevo la opción Firma digital.
13 Se informa que la macro ha sido firmada y se indica con qué nombre. Pulse el botón Aceptar.
IMPORTANTE
También puede crear su firma digital sin acceder a Excel. Despliegue el menú Inicio de Windows y escoja la opción Microsoft Office. En este submenú, seleccione la opción Herramientas de Microsoft Office y luego la opción Certificado digital para proyectos VBA. Introduzca su nombre y la firma estará lista al momento.
| 021 | Crear un procedimiento |
UN PROCEDIMIENTO ES UNA UNIDAD de código que contiene instrucciones y que siempre debe estar contenido en un módulo. Hasta ahora hemos trabajado con procedimientos Sub y en este ejercicio conoceremos más sobre cómo crear un procedimiento Sub directamente desde Visual Basic.
1 En este ejercicio crearemos un sencillísimo procedimiento dentro de un módulo que sea capaz de realizar un cálculo y mostrar su resultado en una caja de texto. Desde la aplicación Visual Basic, inserte un nuevo módulo en blanco en el proyecto Prácticas1. Después de la instrucción Sub debe indicar el nombre de la macro seguido, sin espacio, de un paréntesis de apertura y uno de cierre. Al pulsar Retorno se inserta la instrucción de cierre.
2 En esta ocasión introduciremos el código entero desde esta aplicación. Escriba en su ventana de código el siguiente texto: Sub Suma() y pulse la tecla Retorno.
3 Automáticamente se añade al código la instrucción End Sub que indica el final el procedimiento Sub, pero el cursor de edición permanece en medio de las dos líneas de texto, que es el punto en el que tendrá que introducir las instrucciones de la macro. Pulse la tecla Tabulador para dejar una sangría que facilite la lectura.
4 Escriba ahora una fórmula que haga que la aplicación calcule una sencilla suma: Sum=25+25 y pulse la tecla Retorno.
5 La aplicación corrige el código automáticamente insertando espacios en blanco entre cada elemento. En la siguiente instrucción le indicaremos a la aplicación que muestre el resultado de la suma anterior en un cuadro de mensaje. Escriba el texto: MsgBox y observe cómo, al introducir esta palabra, que es una función, aparece una pestaña flotante donde se indica la sintaxis correcta de la misma. Sin embargo ahora omitiremos todos los argumentos para que se use su versión por defecto más simple.Al introducir una función, se muestra una etiqueta de ayuda con su sintaxis.
6 Escriba a continuación y en la misma línea el texto que contendrá la caja de texto: “El resultado es:” & Sum.
7 El texto entre comillas será mostrado de forma literal, por eso es importante que conserve el espacio en blanco después de los dos puntos, y el texto & Sum indica que el resultado de la suma sea mostrado inmediatamente después. Pulse sobre la herramienta Ejecutar.
8 Confirme que desea ejecutar la macro Suma y pulse el botón Ejecutar del cuadro Macros. La función MsgBox muestra una caja de texto que por defecto tiene sólo un botón Aceptar, pero en el ejercicio siguiente verá cómo personalizarla.
9 Se muestra en medio de la pantalla el cuadro Microsoft Excel que le muestra exactamente el texto indicado. Pulse el botón Aceptar para cerrarlo y pase a la siguiente lección donde creará algunas variaciones de esta sencilla macro.
IMPORTANTE
En este ejercicio hemos creado un procedimiento en el que se utiliza una función. Más adelante trabajaremos con procedimientos de funciones y comprobará que no se trata de lo mismo.
О проекте
О подписке
Другие проекты