VBA Excel 2016 Programación en Excel: Macros y lenguaje VBA Presentación 1. Presentación del lenguaje VBA 17 1.1 Objetivos del lenguaje VBA 1.2 Algunas definiciones 1.3 Escritura de código VBA 17 18 19 2. Las macros de Excel 19 2.1 Mostrar la pestaña Desarrollador en la cinta de opciones 2.2 Descripción de la pestaña Desarrollador 2.2.1 Grupo Código 2.2.2 Grupo Complementos 2.2.3 Grupo Controles 2.3 Grabar una macro 2.3.1 Grabar la primera macro 2.3.2 Ejecutar una macro 2.3.3 Grabar una macro con referencias relativas 2.3.4 Definir el lugar de almacenamiento de una nueva macro 2.3.5 Eliminar una macro 2.3.6 Guardar un libro con macros 2.4 Las macros y la seguridad 2.4.1 Modificar la configuración de seguridad 2.4.2 Descripción de las diferentes opciones de seguridad 2.4.3 Habilitar las macros cuando aparece la advertencia de seguridad 2.4.4 Activar las macros en una ubicación dada 2.4.5 Firmas electrónicas de macros 2.5 Modificar el código de una macro 3. Asignar una macro 32 3.1 Acceso a una macro desde la cinta de opciones de Office 2016 3.2 Asociar una macro a un icono de la barra de herramientas de acceso rápido 3.3 Asociar una macro a un botón de comando 3.4 Asignar una macro a una imagen 3.5 Asociar una macro a una zona de un objeto gráfico www.ediciones-eni.com 19 20 20 21 21 22 22 23 23 25 26 26 27 27 27 28 29 30 30 © Ediciones ENI 32 35 36 36 37 1/16 VBA Excel 2016 Programación en Excel: Macros y lenguaje VBA 3.6 Asociar una macro a una imagen Control ActiveX 4. El entorno de desarrollo VBE 37 38 4.1 Acceso al entorno VBE 4.2 Cerrar el entorno VBE 4.3 Volver a Excel 4.4 Descripción del entorno VBE 4.5 Elegir las ventanas que hay que mostrar 5. Configuración del editor VBA 39 39 39 40 43 43 5.1 Configuración de la tipografía 5.2 Configuración de la introducción de código 5.3 Manejo de errores 5.4 Acoplar una ventana 43 44 45 46 El lenguaje VBA 1. Módulos 47 1.1 Presentación 1.2 Acceso a los módulos 1.3 Importar y exportar código VBA 47 49 49 2. Procedimientos 50 2.1 Definiciones 2.2 Acceso a los procedimientos 2.3 Procedimientos Sub 2.4 Procedimientos Function 2.5 Declaración de procedimientos 2.6 Alcance de los procedimientos 2.7 Argumentos de los procedimientos 2.8 Argumentos con nombre 2.9 Llamar a un procedimiento 2.10 Llamar a una función VBA en una fórmula de Excel 2.11 Ejemplos de procedimientos y funciones www.ediciones-eni.com © Ediciones ENI 50 51 51 52 53 54 54 55 57 57 60 2/16 VBA Excel 2016 Programación en Excel: Macros y lenguaje VBA 3. Variables 61 3.1 Tipos de variables 3.2 Declaración de variables 3.2.1 Declaraciones implícitas 3.2.2 Declaraciones explícitas 3.2.3 Sintaxis de las instrucciones de declaración 3.3 Declaración de los tipos de variables 3.3.1 Declaraciones explícitas del tipo 3.3.2 Declaraciones implícitas del tipo 3.3.3 Convención de nombres de variables 3.4 Matrices 3.5 Constantes 3.5.1 Constantes personalizadas 3.5.2 Constantes integradas 4. Estructuras de decisión 75 4.1 Instrucción If 4.2 Instrucción Select Case 76 79 5. Estructuras en ciclo 80 5.1 Instrucción Do...Loop 5.2 Instrucción While...Wend 5.3 Instrucción For...Next 5.4 Instrucción For Each...Next 5.5 Salir de las estructuras de control 6. Operadores 81 82 83 84 86 86 6.1 Operadores aritméticos 6.2 Operadores de comparación 6.3 Operadores lógicos 6.4 Operador de concatenación 6.5 Prioridad de los operadores 87 87 88 89 89 7. Reglas de escritura del código www.ediciones-eni.com 61 66 66 67 67 68 68 69 71 71 73 73 74 90 © Ediciones ENI 3/16 VBA Excel 2016 Programación en Excel: Macros y lenguaje VBA 7.1 Comentarios 7.2 Carácter de continuación 7.3 Sangrías 7.4 Nombres de los procedimientos, variables y constantes 90 90 91 91 La programación de objetos en Excel 1. Presentación 93 2. El modelo de objeto de Excel 94 2.1 Presentación 2.2 Principales objetos y colecciones 94 95 3. Principios de uso de los objetos y las colecciones 98 3.1 Propiedades 3.2 Propiedades que representan objetos 3.3 Métodos 3.4 Eventos 3.5 Colecciones 3.6 Redacción automática de instrucciones 98 98 100 101 102 104 4. Instrucciones usadas con los objetos 106 4.1 La instrucción With 4.2 La instrucción For Each...Next 4.3 La instrucción If TypeOf 4.4 La instrucción Set 106 107 107 108 5. El Examinador de objetos 109 5.1 Presentación 5.2 Búsqueda en el Examinador de objetos 109 111 Objetos de Excel www.ediciones-eni.com © Ediciones ENI 4/16 VBA Excel 2016 Programación en Excel: Macros y lenguaje VBA 1. El objeto Application 113 1.1 Propiedades que representan las opciones de Excel 1.1.1 Opciones de la categoría General 1.1.2 Opciones de la categoría Fórmulas 1.1.3 Opciones de la categoría Revisión 1.1.4 Opciones de la categoría Guardar 1.1.5 Opciones de la categoría Avanzadas 1.2 Propiedades relativas a la presentación de la aplicación 1.3 Propiedades varias 1.4 Métodos del objeto Application 1.4.1 Métodos que actúan sobre las fórmulas y los cálculos 1.4.2 Métodos que actúan sobre las celdas 1.4.3 Métodos que actúan sobre las listas personalizadas 1.4.4 Métodos que muestran los cuadros de diálogo 1.4.5 Métodos relacionados con las acciones en Excel 1.4.6 Métodos relativos al correo 1.4.7 Otros métodos 1.5 Ejemplos de códigos que usan el objeto Application 1.5.1 Modificación de la interfaz de Excel 1.5.2 Creación de una lista personalizada 1.5.3 Selección de columnas no consecutivas 1.5.4 Evaluación del resultado de una fórmula 2. Objeto Workbook 139 2.1 Objetos y colecciones 2.2 Propiedades 2.2.1 Propiedades relativas a la actualización y registro de libros 2.2.2 Propiedades relativas a libros compartidos 2.2.3 Otras propiedades 2.3 Lista de métodos 2.3.1 Métodos que actúan directamente sobre los libros 2.3.2 Métodos relativos a la seguridad 2.3.3 Métodos relativos a libros compartidos 2.3.4 Métodos relacionados con datos vinculados www.ediciones-eni.com 114 114 115 117 118 119 126 128 132 132 133 133 134 134 135 136 137 137 137 138 138 © Ediciones ENI 140 142 142 143 146 148 148 150 150 151 5/16 VBA Excel 2016 Programación en Excel: Macros y lenguaje VBA 2.3.5 Métodos relativos al envío de libros 2.3.6 Otros métodos 2.4 Ejemplos de códigos que usan el objeto Workbook 2.4.1 Creación de un libro de Excel 2.4.2 Importar una base de datos y exportarla al formato HTML 2.4.3 Mostrar las propiedades de un libro 2.4.4 Exportar un libro al formato PDF 3. El objeto Worksheet 152 153 153 153 154 155 156 156 3.1 Lista de objetos y colecciones 3.2 Objetos y colecciones 3.3 Propiedades 3.4 Métodos 3.5 Ejemplos de códigos que usan el objeto Worksheet 3.5.1 Ordenar las hojas de cálculo de un libro 3.5.2 Protección de las hojas de cálculo de un libro 3.5.3 Ordenar una tabla 4. El objeto Range 157 157 160 162 165 165 166 166 167 4.1 Propiedades y métodos que devuelven un objeto Range 167 4.2 Sintaxis de las propiedades que devuelven un objeto Range 170 4.3 Lista de objetos y colecciones 174 4.4 Propiedades 176 4.4.1 Propiedades relacionadas con la posición y el formato de las celdas 176 4.4.2 Propiedades que se relacionan con el contenido de celdas y con las fórmulas 177 4.4.3 Otras propiedades 178 4.5 Métodos 179 4.5.1 Métodos que devuelven un objeto 179 4.5.2 Métodos que se relacionan con la presentación de las celdas 179 4.5.3 Métodos relacionados con el contenido de las celdas 181 4.5.4 Métodos relacionados con los nombres de celdas 183 4.5.5 Métodos relacionados con los filtros 183 4.5.6 Métodos relacionados con el modo esquema 184 4.5.7 Métodos que se relacionan con la herramienta de Auditoría 184 www.ediciones-eni.com © Ediciones ENI 6/16 VBA Excel 2016 Programación en Excel: Macros y lenguaje VBA 4.5.8 Otros métodos 185 5. Ejemplos de uso de los objetos 186 5.1 Cálculo del importe de una prima 5.2 Asignar comentarios a las celdas 186 188 Tablas dinámicas y gráficos 1. Las tablas dinámicas 191 1.1 El objeto PivotTable 1.1.1 Colecciones 1.1.2 Propiedades 1.1.3 Métodos 1.2 Creación de una tabla dinámica 191 191 192 196 196 2. Los gráficos 197 2.1 El objeto Shape 2.1.1 Propiedades 2.1.2 Métodos 2.2 El objeto Chart 2.2.1 Colecciones 2.2.2 Propiedades 2.2.3 Métodos 2.3 Creación de un gráfico 197 197 198 198 198 198 199 200 3. Ejemplo de aplicación 201 3.1 Presentación 3.2 Código VBA del ejemplo 201 202 4. Creación de una tabla dinámica con minigráficos 210 Cuadros de diálogo www.ediciones-eni.com © Ediciones ENI 7/16 VBA Excel 2016 Programación en Excel: Macros y lenguaje VBA 1. Presentación 215 2. Cuadros de diálogo integrados 216 2.1 El objeto Dialog 2.2 Los métodos GetOpenFileName y GetSaveAsFileName 3. Cuadros de diálogo predefinidos 216 217 219 3.1 La función InputBox 3.2 El método InputBox 3.3 La función MsgBox 3.4 Constantes usadas en los cuadros de diálogo 219 220 221 225 Formularios 1. Presentación 227 2. Crear un formulario 228 3. Personalizar un formulario 237 3.1 Escribir procedimientos 3.2 Lista de eventos asociados a los principales controles 3.3 Ejecutar y cerrar un formulario 4. Ejemplo de formulario personalizado 237 238 244 245 4.1 Presentación 4.2 Código asociado al botón macro de la pestaña Empleados 4.3 Código VBA asociado al formulario 245 247 247 Mejoras en la interfaz de usuario www.ediciones-eni.com © Ediciones ENI 8/16 VBA Excel 2016 Programación en Excel: Macros y lenguaje VBA 1. Presentación 253 2. Personalización de la cinta con la utilidad Custom UI Editor 254 2.1 Presentación de la utilidad Custom UI Editor 2.2 Ejemplo de código XML de personalización 2.3 Etiquetas XML correspondientes a los distintos elementos de la cinta 2.3.1 Pestañas y grupos 2.3.2 Principales controles de la cinta de opciones 2.3.3 Atributos de los controles de la cinta de opciones 2.3.4 Resumen de los atributos para cada control 2.3.5 Imágenes de la galería de iconos de Microsoft Office 2.3.6 Funciones de llamadas Callbacks 2.3.7 Uso de las funciones de llamada Callbacks 3. Ejemplo de cinta personalizada con el Custom UI Editor 3.1 Presentación 3.2 Código XML de la cinta 3.3 Código VBA de personalización de la cinta (módulo "Cinta") 254 256 259 259 260 263 265 267 267 270 271 271 273 275 4. Personalización de la cinta de opciones mediante la colección CommandBars 279 5. Ejemplos de barras de comandos 280 5.1 Barras de herramientas personalizadas 5.2 Comandos de menús en formato Office 2016 5.3 Agregar el grupo a la barra de herramientas de acceso rápido 6. Barras de comandos 282 6.1 Terminología 6.1.1 Barra de comandos 6.1.2 Control 6.2 Crear una barra de comandos 6.3 Eliminar una barra de comandos 6.4 Mostrar una barra de comandos www.ediciones-eni.com 280 280 281 © Ediciones ENI 282 282 282 282 284 284 9/16 VBA Excel 2016 Programación en Excel: Macros y lenguaje VBA 7. Controles (opciones o botones de comando) de las barras de comandos 7.1 Agregar un control 7.2 Especificar el título de un control 7.3 Eliminar un control 7.4 Asociar un procedimiento a un control 7.5 Otras propiedades 7.6 Lista de imágenes asociadas a los botones de comando 8. Ejemplos de menús personalizados 285 285 286 287 287 287 289 290 8.1 Presentación 8.2 Código de los ejemplos 8.3 Código del módulo de clase ThisWorkbook 8.4 Código de la hoja "Nota de Gastos" 8.5 Código del módulo ProcMenus 8.6 Código del módulo ProcAction 290 292 292 293 293 298 Administración de eventos 1. Presentación 301 2. Escritura de eventos 302 2.1 Eventos de libro, de hoja o de formulario 2.2 Eventos del objeto Application 2.3 Evento asociado a un gráfico incrustado 302 304 307 3. Eventos del objeto Application 309 4. Eventos del objeto Workbook 314 5. Eventos del objeto Worksheet 317 www.ediciones-eni.com © Ediciones ENI 10/16 VBA Excel 2016 Programación en Excel: Macros y lenguaje VBA 6. Eventos del objeto Chart 319 Depuración y administración de errores 1. Diferentes tipos de error 321 1.1 Errores de sintaxis 1.2 Errores de compilación 1.3 Errores de ejecución 1.4 Errores de lógica 321 322 323 324 2. Depuración 325 2.1 Presentación 2.2 La barra de herramientas Depuración 2.3 El objeto Debug 3. Administración de errores en VBA 325 325 327 328 3.1 El objeto Err 330 Comunicación con las aplicaciones de Office 1. La tecnología Automation 333 1.1 Presentación 1.2 Uso de la tecnología Automation 2. Comunicación con Word desde Excel 336 2.1 El modelo de objeto de Word 2.2 Principales colecciones del modelo de objeto de Word 2.3 Principales objetos del modelo de objeto de Word 2.4 La colección Documents 2.5 Objetos Document 2.6 Ejemplo www.ediciones-eni.com 333 334 © Ediciones ENI 336 337 338 339 340 342 11/16 VBA Excel 2016 Programación en Excel: Macros y lenguaje VBA 3. Comunicación con Access desde Excel 3.1 El modelo de objeto de Access 3.2 Principales colecciones del modelo de objeto de Access 3.3 Principales objetos del modelo de objeto de Access 3.4 Ejemplos 3.4.1 Listar tablas de una base de Access 3.4.2 Mostrar una tabla de Access en Excel 3.4.3 Abrir una tabla o consulta de Access en un nuevo libro 4. Comunicación con Outlook desde Excel 4.1 Objetos de Outlook 4.2 Acceso a los objetos de Outlook 4.2.1 Creación de un objeto (e-mail, contacto...) en Outlook 4.2.2 Acceso a los objetos (contactos, citas...) de Outlook 4.3 Ejemplo de uso del objeto MailItem 5. Objetos vinculados o incrustados 345 345 346 346 348 348 348 350 351 351 352 352 353 354 355 5.1 Métodos del objeto OLEObject 5.2 Propiedades del objeto OLEObject 6. Métodos y propiedades relativos a los vínculos con Excel 6.1 Métodos y propiedades del objeto Workbook 6.2 Métodos y propiedades de otros objetos 356 356 357 357 359 Internet 1. Consultas por Internet 361 2. El objeto QueryTable 363 2.1 Propiedades del objeto QueryTable 2.2 Ejemplos www.ediciones-eni.com © Ediciones ENI 364 368 12/16 VBA Excel 2016 Programación en Excel: Macros y lenguaje VBA 3. Publicación de páginas web 370 3.1 Asociación de un elemento de libro a una página web 3.2 Publicación de la página web 3.3 Ejemplo 4. Los objetos WebOptions y DefaultWebOptions 4.1 Propiedades 4.1.1 Opciones de la pestaña General 4.1.2 Opciones de la pestaña Exploradores 4.1.3 Opciones de la pestaña Archivos 4.1.4 Otras propiedades 4.2 Método del objeto WebOptions 5. Importar, exportar y asignar archivos XML 5.1 Colecciones 5.2 Métodos del objeto Workbook 5.3 Eventos del objeto Workbook 5.4 Métodos del objeto XmlMap 371 372 372 373 374 374 375 376 376 377 377 378 379 380 381 6. El objeto HyperLink 381 6.1 Propiedades 6.2 Métodos 381 382 Programación en Windows 1. Presentación de las API 383 2. Llamar a una función de la API de Windows 385 2.1 Sintaxis de la instrucción Declare 2.2 Paso de argumentos 385 386 3. Lista de funciones API de Windows www.ediciones-eni.com 386 © Ediciones ENI 13/16 VBA Excel 2016 Programación en Excel: Macros y lenguaje VBA 4. Ejemplos de uso de funciones API de Windows 4.1 Recuperar el directorio Windows 4.2 Abrir la calculadora de Windows 5. El objeto FileSystemObject 387 387 388 390 5.1 Métodos 5.2 Propiedades 5.3 Ejemplo: copia de archivos de Excel 390 392 392 Código de una miniaplicación 1. Presentación general 393 2. Descripción de la aplicación GestPresupuesto 394 3. Cinta de Office 2013 personalizada 396 3.1 Presentación 3.2 Código XML de la cinta personalizada 4. Módulo ThisWorbook 398 4.1 Presentación 4.2 Código VBA del módulo ThisWorkbook 5. Formulario NuevoPresupuesto 398 398 399 5.1 Presentación 5.2 Lista de controles 5.3 Lista de celdas con nombre del modelo Presupuesto.xltx 5.4 Código VBA del formulario NuevoPresupuesto 6. Formulario BuscarPresupuesto 399 399 400 400 403 6.1 Presentación www.ediciones-eni.com 396 397 403 © Ediciones ENI 14/16 VBA Excel 2016 Programación en Excel: Macros y lenguaje VBA 6.2 Lista de controles 6.3 Código VBA del formulario BuscarPresupuesto 7. Módulos ProcCinta y ProcGene 403 404 407 7.1 Código VBA del módulo ProcCinta 7.2 Código VBA del módulo ProcGene 407 409 Anexos 1. Lista de instrucciones 413 1.1 Cadenas de caracteres 1.2 Fecha Hora/Matemáticas 1.3 Declaración 1.4 Error 1.5 Archivo 1.6 Estructuración 1.7 Sistema 1.8 Diversas 413 414 414 416 417 421 422 423 2. Lista de funciones 424 2.1 Conversiones 2.2 Cadenas de caracteres 2.3 Matemáticas 2.4 Financieras 2.5 Fechas y horas 2.6 Archivos, Sistema 2.7 Verificación de variables 2.8 Interacción 2.9 Matrices 2.10 SQL 2.11 Diversas 2.12 Solver 424 426 429 431 433 436 438 439 439 440 441 442 3. Constantes VBA www.ediciones-eni.com 444 © Ediciones ENI 15/16 VBA Excel 2016 Programación en Excel: Macros y lenguaje VBA 3.1 3.2 3.3 3.4 3.5 Constantes de color Constantes de fecha Constantes de teclas correspondientes a letras y números Constantes de teclas de función Constantes de teclas diversas 444 444 445 445 446 índice 449 www.ediciones-eni.com © Ediciones ENI 16/16