PRESENTACIÓN DEL LENGUAJE VBA
Visual Basic para Aplicaciones (VBA) es el lenguaje de programación común a todas las aplicaciones del paquete Microsoft Office 2010 (Word, Access, Excel, Outlook y PowerPoint).
Objetivos del lenguaje VBA
Trabajando en Excel, el lenguaje VBA permite:
automatizar acciones repetitivas: con VBA puede realizar en una única operación todo un grupo de comandos de Excel.
interactuar sobre los libros de Excel: el contenido y la presentación de todos los elementos contenidos en un libro (hojas, celdas, gráficos, etc.), se pueden modificar a través de código VBA.
crear formularios personalizados: los formularios son los cuadros de diálogo compuestos por controles ActiveX (cuadros de texto, listas desplegables, etc.), a los que se les puede asociar código VBA. Los formularios permiten crear interfaces amigables para la entrada o la salida de información.
personalizar la interfaz de Excel: la cinta de opciones de Office 2010 es totalmente personalizable y se pueden asociar macros creadas en lenguaje VBA a los comandos de la cinta o a la barra de herramientas de acceso rápido.
modificar las opciones de Excel: a cada opción de Excel le corresponde una propiedad de un objeto VBA. Por ejemplo, puede modificar el tipo de fuente por defecto a partir de las propiedades StandardFont (fuente) y StandardFontsize (tamaño de fuente) del objeto Application.
Ejemplo:
Application.StandardFont = «Arial» Application.StandardFontSize = «10»
comunicar Excel con otras aplicaciones Microsoft Office: VBA permite intercambiar información entre las aplicaciones Office usando objetos específicos propios de cada uno. Por ejemplo, usted puede insertar una tabla o un gráfico Excel en un archivo de Word, crear mensajes Outlook con un archivo Excel adjunto, etc.
Algunas definiciones
Proyecto:
Cada libro abierto en Excel tiene asociado un proyecto que contiene todos los módulos de código VBA agrupados en categorías.
Módulo:
Los módulos contienen las macros grabadas y sus propios procedimientos y funciones escritos en VBA. Los módulos se pueden exportar como archivos independientes para luego ser importados en otros libros.
Procedimiento:
Función
Las funciones son procedimientos que devuelven un valor. Para crear una función se debe utilizar la instrucción Function.
Escritura de código VBA
Hay dos maneras de crear un procedimiento VBA:
generar automáticamente el código a partir de la grabación de macros,
escribir directamente el código del procedimiento en el Editor de Visual Basic (o entorno VBE).
La primera solución es más sencilla, pero mucho más limitada que la segunda. Los procedimientos generados automáticamente sólo permiten automatizar acciones repetitivas realizadas con Excel (formato de celdas, ordenar datos, etc.).
Si desea efectuar operaciones específicas: algoritmos de cálculo, intercambio de mensajes y de información con el usuario, controlar la coherencia de datos en un libro o cualquier otra operación que haga uso de estructuras repetitivas o condicionales, debe crear sus propios procedimientos en el editor de VBA.
Las macros de Excel
Mostrar la ficha Programador en la cinta de opciones
Para escribir macros, ejecutar macros grabadas o crear aplicaciones Excel, debe mostrar la ficha Programador de la siguiente manera:
Haga clic en la ficha Archivo y luego en Opciones. Seleccione la categoría Personalizar cinta.
Dentro de Personalizar la cinta de opciones, en la lista Fichas principales, marque la opción Programador.
Haga clic en el botón Aceptar: la ficha Programador se añadirá a la cinta de opciones de Excel, a la derecha de la ficha Vista.
Grupo "Código"
Nombre del botón Descripción
Abre el entorno de desarrollo. El método abreviado de teclado es [Alt][F11].
Muestra la lista de macros. El método abreviado de teclado es [Alt][F8].
Grabar macro
Comienza la grabación de una macro.
Usar referencias relativas
Permite usar referencias relativas a la primera celda seleccionada.
Seguridad de macros
Personaliza la configuración de seguridad de las macros.
Grupo "Complementos"
Nombre del botón
Descripción
Permite seleccionar macros grabadas como complementos.
Permite seleccionar complementos COM (librería de funciones complementarias).
Grupo “Controles”
Nombre del botón Descripción
Permite insertar controles (formularios o ActiveX) en Excel.
Nombre del botón Descripción
Muestra las propiedades del objeto Excel seleccionado (hoja o control).
Permite acceder directamente al código asociado al control seleccionado.
Ejecuta un cuadro de diálogo personalizado.
Grabar una macro
Grabar la primera macro
Veamos cómo crear una macro que aplique un borde y un relleno en las celdas seleccionadas.
Seleccione un rango de celdas.
Haga clic en el botón grabar macro en la ficha Programador o en la barra de estado.
En el cuadro de diálogo que aparece, escriba el nombre de la macro, su descripción e indique, si lo desea, el método abreviado de teclas asociado.
Haga clic en el botón Aceptar para iniciar la grabación.
Realice en Excel las operaciones que desee grabar. Por ejemplo, aplique un relleno y un borde al rango actualmente seleccionado.
Haga clic en el botón detener de la ficha Programador para terminar la grabación (también puede usar el mismo botón en la barra de estado).
Ejecutar una macro
Haga clic en el botón Macros de la ficha Programador o pulse el método abreviado de teclas [Alt][F8] y luego haga doble clic sobre el nombre de la macro que desea ejecutar.
O pulse la combinación de teclas asociada a la macro
Definir el lugar de almacenamiento de una nueva macro
Para definir el lugar de almacenamiento de una nueva macro:
Haga clic en el botón Grabar macro de la ficha Programador o pulse el método abreviado [Alt][F8].
Abra la lista Guardar macro en y seleccione el libro en el que desea crear la macro.
Si elige Libro de macros personal, la macro se grabará en el libro personal.xlsb; la macro será accesible desde todos los libros
Guardar un libro con macros
Si ha creado macros en un libro y lo graba por primera vez aparecerá el siguiente mensaje
Haga clic en No para no grabar el libro sin las macros.
En el cuadro Guardar como abra la lista Guardar como tipo y seleccione Libro de Excel habilitado para macros (*.xlsm). Luego indique el nombre y destino del libro y haga clic en
Aceptar.
Los libros que contienen macros tienen la extensión xlsm (en vez de xslx) y su icono se distingue por un signo de exclamación.
También puede grabar un nuevo libro con macros mediante las siguientes operaciones:
Haga clic en la ficha Archivo y luego en Guardar como.
Tarea:
1. Crear una macro que ponga un encabezado en la página, como se muestra, esta macro se llamará encabezado y se grabará en el libro Personal
2. Crear una macro que ponga bordes y un relleno a un área que se seleccione, esta macro se llamará Bordes
Las macros y la seguridad
La configuración de seguridad de las macros permite controlar lo que ocurre al abrir un libro que contiene macros.
Las modificaciones de la configuración de seguridad de macros rigen solamente en Excel y no afectan al resto de aplicaciones de Microsoft Office.
a. Modificar la configuración de seguridad
Haga clic en el botón Seguridad de la ficha Programador.
Dentro de Configuración de macros, seleccione la opción deseada (vea la descripción de cada opción en la sección siguiente).
Haga clic en Aceptar para validar su elección.
Si se cambia la configuración de seguridad, las nuevas opciones se aplicarán a todos los libros, excepto a los libros actualmente abiertos. Para aplicarlas a estos libros, debe cerrarlos y abrirlos nuevamente.
b. Descripción de las diferentes opciones de seguridad Deshabilitar todas las macros sin notificación
Todas las macros y todas las advertencias de seguridad serán deshabilitadas.
Deshabilitar todas las macros con notificación
Es la opción por defecto. Las macros serán deshabilitadas pero aparecerá una advertencia de seguridad en la barra de mensajes (bajo la cinta de opciones) para los libros que contienen macros.
Deshabilitar todas las macros excepto las firmadas digitalmente
Si las macros de un libro tienen firma digital de un origen aprobado, las macros se podrán ejecutar. Si el origen no está autorizado, aparecerá una notificación: en este caso es posible habilitar las macros firmadas o aprobar el origen. Las macros sin firma digital no se podrán habilitar.
Si selecciona esta opción, todas las macros serán habilitadas. Se recomienda no usar esta opción de forma permanente.
Cualquiera que sea la opción elegida, si instala un programa antivirus compatible con Microsoft Office System 2010, los libros que contengan macros serán analizados antes de abrirse.
c. Habilitar las macros cuando aparece la advertencia de seguridad
Si ha seleccionado la opción Deshabilitar todas las macros con notificación, aparecerá la siguiente advertencia bajo la cinta de opciones, cuando abra un libro que contiene macros:
Modificar el código de una macro
Una macro es un procedimiento escrito en lenguaje VBA. Un procedimiento VBA es una secuencia de instrucciones agrupadas en un bloque de código que comienza con Sub y termina con End Sub. Para acceder al código de una macro:
Haga clic en el botón de la ficha Programador o pulse el método abreviado [Alt] [F8].
Seleccione la macro que desea modificar y haga clic en el botón Modificar.
El código de la macro aparecerá en una ventana del entorno Microsoft Visual Basic (ver El entorno de desarrollo VBE, en este capítulo).
Puede modificar o completar el código dentro de este procedimiento. Ejemplo
MsgBox “El formato de celdas ” & Selection.Address _ & vbCr & "ha sido modificado correctamente" End Sub
Para probar su procedimiento, haga clic en el icono o use la tecla [F5]. Aparecerá el siguiente mensaje:
Tarea: modificar el código de la macro bordes para que mande un mensaje al final
Asignar una macro
Una macro se puede asociar a los siguientes elementos: comandos personalizados en la cinta de opciones;
botones de comando en la barra de herramientas de acceso rápido;
controles u objetos insertados en las hojas de Excel (botones de comando, imágenes, etc.).
1. Acceso a una macro desde la cinta de opciones de Office 2010
Microsoft Office 2010 ofrece ahora la posibilidad de personalizar la cinta de opciones: puede agregar, eliminar o reasignar las fichas, grupos y comandos de la cinta para disponer de aplicaciones personalizadas.
Para personalizar la cinta de opciones:
Haga clic en el botón derecho del ratón sobre la cinta y seleccione la opción Personalizar la cinta.
O
Haga clic en la ficha Archivo, luego en Opciones y seleccione la categoría Personalizar cinta.
Para insertar macros en una nueva ficha:
Haga clic en el botón Nueva pestaña. Se agregará una ficha y un grupo a la lista de fichas principales.
Para cambiar el nombre de la ficha y del grupo que acaba de crear, haga clic en el botón
Cambiar nombre.
Descuelgue las opciones dentro de Comandos disponibles en: (a la izquierda y arriba) y seleccione Macros. Aparecerá la lista de macros disponibles.
Seleccione la macro que desea agregar al grupo y haga clic en Agregar.
Para modificar el nombre y el ícono de la macro haga clic en el botón Cambiar nombre.
También puede cambiar el orden de las fichas, grupos y comandos con las flechas situadas a la derecha de la lista.
Ejemplo de personalización:
Haga clic en el botón Modificar... para seleccionar un nuevo ícono para la macro.
Puede modificar el orden de los comandos con las flechas ubicadas a la derecha de la lista.
Puede seleccionar un libro en la lista desplegable situada arriba y a la derecha. En ese caso las modificaciones solamente afectarán al libro indicado.
Haga clic en Aceptar.
Aparecerá un nuevo comando en la barra de acceso rápido, para ejecutar la macro Bordes.
Asociar una macro a un botón de comando
Haga clic en el botón de la ficha Programador.
Dibuje el botón con ayuda de la herramienta (parte superior izquierda de la barra de
Seleccione el Nombre de la macro en la lista y haga clic en Aceptar.
Tarea:
1. Cree una macro que ponga bordes y relleno amarillo a celdas seleccionadas 2. Asígnele las teclas ctrl-sfhit-C
3. Asigne la misma macro Bordes a un botón Active x
4. Cree una macro que ponga un encabezado de tres líneas. 5. Cree una macro que haga un formato de formulario.
6. Crear una macro que a toda una hoja ponga fuente Arial 9, ancho de celda de 15, con ajustar texto.
7. Crear un procedimiento que pida el nombre y regrese un saludo al nombre. 8. Asignar el procedimiento anterior a un botón.
EL ENTORNO DE DESARROLLO VBE
VBE (Visual Basic Editor) es el entorno en el que puede escribir, modificar y probar su código VBA. Este entorno se llama también IDE (Integrated Development Environment) o editor de VBA.
El entorno VBE pone a su disposición numerosas herramientas para facilitar la programación y la puesta a punto de su código VBA: herramientas de depuración, introducción asistida, explorador de objetos, etc.
1. Acceso al entorno VBE
Para acceder al entorno VBE desde Excel, haga clic en el botón de la ficha
Programador o pulse la combinación [Alt][F11].