Está en la página 1de 16

VBA Excel 2016

Programacin en Excel: Macros y lenguaje VBA

Presentacin

1. Presentacin del lenguaje VBA 17

1.1 Objetivos del lenguaje VBA 17


1.2 Algunas definiciones 18
1.3 Escritura de cdigo VBA 19

2. Las macros de Excel 19


2.1 Mostrar la pestaa Desarrollador en la cinta de opciones 19
2.2 Descripcin de la pestaa Desarrollador 20
2.2.1 Grupo Cdigo 20
2.2.2 Grupo Complementos 21
2.2.3 Grupo Controles 21
2.3 Grabar una macro 22
2.3.1 Grabar la primera macro 22
2.3.2 Ejecutar una macro 23
2.3.3 Grabar una macro con referencias relativas 23
2.3.4 Definir el lugar de almacenamiento de una nueva macro 25
2.3.5 Eliminar una macro 26
2.3.6 Guardar un libro con macros 26
2.4 Las macros y la seguridad 27
2.4.1 Modificar la configuracin de seguridad 27
2.4.2 Descripcin de las diferentes opciones de seguridad 27
2.4.3 Habilitar las macros cuando aparece la advertencia de seguridad 28
2.4.4 Activar las macros en una ubicacin dada 29
2.4.5 Firmas electrnicas de macros 30
2.5 Modificar el cdigo de una macro 30

3. Asignar una macro 32


3.1 Acceso a una macro desde la cinta de opciones de Office 2016 32
3.2 Asociar una macro a un icono de la barra de herramientas de acceso rpido 35
3.3 Asociar una macro a un botn de comando 36
3.4 Asignar una macro a una imagen 36
3.5 Asociar una macro a una zona de un objeto grfico 37

www.ediciones-eni.com Ediciones ENI 1/16


VBA Excel 2016
Programacin en Excel: Macros y lenguaje VBA

3.6 Asociar una macro a una imagen Control ActiveX 37

4. El entorno de desarrollo VBE 38


4.1 Acceso al entorno VBE 39
4.2 Cerrar el entorno VBE 39
4.3 Volver a Excel 39
4.4 Descripcin del entorno VBE 40
4.5 Elegir las ventanas que hay que mostrar 43

5. Configuracin del editor VBA 43

5.1 Configuracin de la tipografa 43


5.2 Configuracin de la introduccin de cdigo 44
5.3 Manejo de errores 45
5.4 Acoplar una ventana 46

El lenguaje VBA

1. Mdulos 47
1.1 Presentacin 47
1.2 Acceso a los mdulos 49
1.3 Importar y exportar cdigo VBA 49

2. Procedimientos 50
2.1 Definiciones 50
2.2 Acceso a los procedimientos 51
2.3 Procedimientos Sub 51
2.4 Procedimientos Function 52
2.5 Declaracin de procedimientos 53
2.6 Alcance de los procedimientos 54
2.7 Argumentos de los procedimientos 54
2.8 Argumentos con nombre 55
2.9 Llamar a un procedimiento 57
2.10 Llamar a una funcin VBA en una frmula de Excel 57
2.11 Ejemplos de procedimientos y funciones 60

www.ediciones-eni.com Ediciones ENI 2/16


VBA Excel 2016
Programacin en Excel: Macros y lenguaje VBA

3. Variables 61
3.1 Tipos de variables 61
3.2 Declaracin de variables 66
3.2.1 Declaraciones implcitas 66
3.2.2 Declaraciones explcitas 67
3.2.3 Sintaxis de las instrucciones de declaracin 67
3.3 Declaracin de los tipos de variables 68
3.3.1 Declaraciones explcitas del tipo 68
3.3.2 Declaraciones implcitas del tipo 69
3.3.3 Convencin de nombres de variables 71
3.4 Matrices 71
3.5 Constantes 73
3.5.1 Constantes personalizadas 73
3.5.2 Constantes integradas 74

4. Estructuras de decisin 75
4.1 Instruccin If 76
4.2 Instruccin Select Case 79

5. Estructuras en ciclo 80

5.1 Instruccin Do...Loop 81


5.2 Instruccin While...Wend 82
5.3 Instruccin For...Next 83
5.4 Instruccin For Each...Next 84
5.5 Salir de las estructuras de control 86

6. Operadores 86

6.1 Operadores aritmticos 87


6.2 Operadores de comparacin 87
6.3 Operadores lgicos 88
6.4 Operador de concatenacin 89
6.5 Prioridad de los operadores 89

7. Reglas de escritura del cdigo 90

www.ediciones-eni.com Ediciones ENI 3/16


VBA Excel 2016
Programacin en Excel: Macros y lenguaje VBA

7.1 Comentarios 90
7.2 Carcter de continuacin 90
7.3 Sangras 91
7.4 Nombres de los procedimientos, variables y constantes 91

La programacin de objetos en Excel

1. Presentacin 93

2. El modelo de objeto de Excel 94


2.1 Presentacin 94
2.2 Principales objetos y colecciones 95

3. Principios de uso de los objetos y las colecciones 98

3.1 Propiedades 98
3.2 Propiedades que representan objetos 98
3.3 Mtodos 100
3.4 Eventos 101
3.5 Colecciones 102
3.6 Redaccin automtica de instrucciones 104

4. Instrucciones usadas con los objetos 106

4.1 La instruccin With 106


4.2 La instruccin For Each...Next 107
4.3 La instruccin If TypeOf 107
4.4 La instruccin Set 108

5. El Examinador de objetos 109

5.1 Presentacin 109


5.2 Bsqueda en el Examinador de objetos 111

Objetos de Excel

www.ediciones-eni.com Ediciones ENI 4/16


VBA Excel 2016
Programacin en Excel: Macros y lenguaje VBA

1. El objeto Application 113


1.1 Propiedades que representan las opciones de Excel 114
1.1.1 Opciones de la categora General 114
1.1.2 Opciones de la categora Frmulas 115
1.1.3 Opciones de la categora Revisin 117
1.1.4 Opciones de la categora Guardar 118
1.1.5 Opciones de la categora Avanzadas 119
1.2 Propiedades relativas a la presentacin de la aplicacin 126
1.3 Propiedades varias 128
1.4 Mtodos del objeto Application 132
1.4.1 Mtodos que actan sobre las frmulas y los clculos 132
1.4.2 Mtodos que actan sobre las celdas 133
1.4.3 Mtodos que actan sobre las listas personalizadas 133
1.4.4 Mtodos que muestran los cuadros de dilogo 134
1.4.5 Mtodos relacionados con las acciones en Excel 134
1.4.6 Mtodos relativos al correo 135
1.4.7 Otros mtodos 136
1.5 Ejemplos de cdigos que usan el objeto Application 137
1.5.1 Modificacin de la interfaz de Excel 137
1.5.2 Creacin de una lista personalizada 137
1.5.3 Seleccin de columnas no consecutivas 138
1.5.4 Evaluacin del resultado de una frmula 138

2. Objeto Workbook 139

2.1 Objetos y colecciones 140


2.2 Propiedades 142
2.2.1 Propiedades relativas a la actualizacin y registro de libros 142
2.2.2 Propiedades relativas a libros compartidos 143
2.2.3 Otras propiedades 146
2.3 Lista de mtodos 148
2.3.1 Mtodos que actan directamente sobre los libros 148
2.3.2 Mtodos relativos a la seguridad 150
2.3.3 Mtodos relativos a libros compartidos 150
2.3.4 Mtodos relacionados con datos vinculados 151

www.ediciones-eni.com Ediciones ENI 5/16


VBA Excel 2016
Programacin en Excel: Macros y lenguaje VBA

2.3.5 Mtodos relativos al envo de libros 152


2.3.6 Otros mtodos 153
2.4 Ejemplos de cdigos que usan el objeto Workbook 153
2.4.1 Creacin de un libro de Excel 153
2.4.2 Importar una base de datos y exportarla al formato HTML 154
2.4.3 Mostrar las propiedades de un libro 155
2.4.4 Exportar un libro al formato PDF 156

3. El objeto Worksheet 156


3.1 Lista de objetos y colecciones 157
3.2 Objetos y colecciones 157
3.3 Propiedades 160
3.4 Mtodos 162
3.5 Ejemplos de cdigos que usan el objeto Worksheet 165
3.5.1 Ordenar las hojas de clculo de un libro 165
3.5.2 Proteccin de las hojas de clculo de un libro 166
3.5.3 Ordenar una tabla 166

4. El objeto Range 167


4.1 Propiedades y mtodos 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 posicin y el formato de las celdas 176
4.4.2 Propiedades que se relacionan con el contenido de celdas y con las frmulas
177
4.4.3 Otras propiedades 178
4.5 Mtodos 179
4.5.1 Mtodos que devuelven un objeto 179
4.5.2 Mtodos que se relacionan con la presentacin de las celdas 179
4.5.3 Mtodos relacionados con el contenido de las celdas 181
4.5.4 Mtodos relacionados con los nombres de celdas 183
4.5.5 Mtodos relacionados con los filtros 183
4.5.6 Mtodos relacionados con el modo esquema 184
4.5.7 Mtodos que se relacionan con la herramienta de Auditora 184

www.ediciones-eni.com Ediciones ENI 6/16


VBA Excel 2016
Programacin en Excel: Macros y lenguaje VBA

4.5.8 Otros mtodos 185

5. Ejemplos de uso de los objetos 186


5.1 Clculo del importe de una prima 186
5.2 Asignar comentarios a las celdas 188

Tablas dinmicas y grficos

1. Las tablas dinmicas 191

1.1 El objeto PivotTable 191


1.1.1 Colecciones 191
1.1.2 Propiedades 192
1.1.3 Mtodos 196
1.2 Creacin de una tabla dinmica 196

2. Los grficos 197


2.1 El objeto Shape 197
2.1.1 Propiedades 197
2.1.2 Mtodos 198
2.2 El objeto Chart 198
2.2.1 Colecciones 198
2.2.2 Propiedades 198
2.2.3 Mtodos 199
2.3 Creacin de un grfico 200

3. Ejemplo de aplicacin 201

3.1 Presentacin 201


3.2 Cdigo VBA del ejemplo 202

4. Creacin de una tabla dinmica con minigrficos 210

Cuadros de dilogo

www.ediciones-eni.com Ediciones ENI 7/16


VBA Excel 2016
Programacin en Excel: Macros y lenguaje VBA

1. Presentacin 215

2. Cuadros de dilogo integrados 216


2.1 El objeto Dialog 216
2.2 Los mtodos GetOpenFileName y GetSaveAsFileName 217

3. Cuadros de dilogo predefinidos 219

3.1 La funcin InputBox 219


3.2 El mtodo InputBox 220
3.3 La funcin MsgBox 221
3.4 Constantes usadas en los cuadros de dilogo 225

Formularios

1. Presentacin 227

2. Crear un formulario 228

3. Personalizar un formulario 237


3.1 Escribir procedimientos 237
3.2 Lista de eventos asociados a los principales controles 238
3.3 Ejecutar y cerrar un formulario 244

4. Ejemplo de formulario personalizado 245

4.1 Presentacin 245


4.2 Cdigo asociado al botn macro de la pestaa Empleados 247
4.3 Cdigo VBA asociado al formulario 247

Mejoras en la interfaz de usuario

www.ediciones-eni.com Ediciones ENI 8/16


VBA Excel 2016
Programacin en Excel: Macros y lenguaje VBA

1. Presentacin 253

2. Personalizacin de la cinta con la utilidad Custom UI Editor 254


2.1 Presentacin de la utilidad Custom UI Editor 254
2.2 Ejemplo de cdigo XML de personalizacin 256
2.3 Etiquetas XML correspondientes a los distintos elementos de la cinta 259
2.3.1 Pestaas y grupos 259
2.3.2 Principales controles de la cinta de opciones 260
2.3.3 Atributos de los controles de la cinta de opciones 263
2.3.4 Resumen de los atributos para cada control 265
2.3.5 Imgenes de la galera de iconos de Microsoft Office 267
2.3.6 Funciones de llamadas Callbacks 267
2.3.7 Uso de las funciones de llamada Callbacks 270

3. Ejemplo de cinta personalizada con el Custom UI Editor 271

3.1 Presentacin 271


3.2 Cdigo XML de la cinta 273
3.3 Cdigo VBA de personalizacin de la cinta (mdulo "Cinta") 275

4. Personalizacin de la cinta de opciones mediante la coleccin CommandBars 279

5. Ejemplos de barras de comandos 280


5.1 Barras de herramientas personalizadas 280
5.2 Comandos de mens en formato Office 2016 280
5.3 Agregar el grupo a la barra de herramientas de acceso rpido 281

6. Barras de comandos 282

6.1 Terminologa 282


6.1.1 Barra de comandos 282
6.1.2 Control 282
6.2 Crear una barra de comandos 282
6.3 Eliminar una barra de comandos 284
6.4 Mostrar una barra de comandos 284

www.ediciones-eni.com Ediciones ENI 9/16


VBA Excel 2016
Programacin en Excel: Macros y lenguaje VBA

7. Controles (opciones o botones de comando) de las barras de comandos 285


7.1 Agregar un control 285
7.2 Especificar el ttulo de un control 286
7.3 Eliminar un control 287
7.4 Asociar un procedimiento a un control 287
7.5 Otras propiedades 287
7.6 Lista de imgenes asociadas a los botones de comando 289

8. Ejemplos de mens personalizados 290

8.1 Presentacin 290


8.2 Cdigo de los ejemplos 292
8.3 Cdigo del mdulo de clase ThisWorkbook 292
8.4 Cdigo de la hoja "Nota de Gastos" 293
8.5 Cdigo del mdulo ProcMenus 293
8.6 Cdigo del mdulo ProcAction 298

Administracin de eventos

1. Presentacin 301

2. Escritura de eventos 302

2.1 Eventos de libro, de hoja o de formulario 302


2.2 Eventos del objeto Application 304
2.3 Evento asociado a un grfico incrustado 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
Programacin en Excel: Macros y lenguaje VBA

6. Eventos del objeto Chart 319

Depuracin y administracin de errores

1. Diferentes tipos de error 321

1.1 Errores de sintaxis 321


1.2 Errores de compilacin 322
1.3 Errores de ejecucin 323
1.4 Errores de lgica 324

2. Depuracin 325

2.1 Presentacin 325


2.2 La barra de herramientas Depuracin 325
2.3 El objeto Debug 327

3. Administracin de errores en VBA 328


3.1 El objeto Err 330

Comunicacin con las aplicaciones de Office

1. La tecnologa Automation 333

1.1 Presentacin 333


1.2 Uso de la tecnologa Automation 334

2. Comunicacin con Word desde Excel 336

2.1 El modelo de objeto de Word 336


2.2 Principales colecciones del modelo de objeto de Word 337
2.3 Principales objetos del modelo de objeto de Word 338
2.4 La coleccin Documents 339
2.5 Objetos Document 340
2.6 Ejemplo 342

www.ediciones-eni.com Ediciones ENI 11/16


VBA Excel 2016
Programacin en Excel: Macros y lenguaje VBA

3. Comunicacin con Access desde Excel 345


3.1 El modelo de objeto de Access 345
3.2 Principales colecciones del modelo de objeto de Access 346
3.3 Principales objetos del modelo de objeto de Access 346
3.4 Ejemplos 348
3.4.1 Listar tablas de una base de Access 348
3.4.2 Mostrar una tabla de Access en Excel 348
3.4.3 Abrir una tabla o consulta de Access en un nuevo libro 350

4. Comunicacin con Outlook desde Excel 351


4.1 Objetos de Outlook 351
4.2 Acceso a los objetos de Outlook 352
4.2.1 Creacin de un objeto (e-mail, contacto...) en Outlook 352
4.2.2 Acceso a los objetos (contactos, citas...) de Outlook 353
4.3 Ejemplo de uso del objeto MailItem 354

5. Objetos vinculados o incrustados 355

5.1 Mtodos del objeto OLEObject 356


5.2 Propiedades del objeto OLEObject 356

6. Mtodos y propiedades relativos a los vnculos con Excel 357

6.1 Mtodos y propiedades del objeto Workbook 357


6.2 Mtodos y propiedades de otros objetos 359

Internet

1. Consultas por Internet 361

2. El objeto QueryTable 363

2.1 Propiedades del objeto QueryTable 364


2.2 Ejemplos 368

www.ediciones-eni.com Ediciones ENI 12/16


VBA Excel 2016
Programacin en Excel: Macros y lenguaje VBA

3. Publicacin de pginas web 370


3.1 Asociacin de un elemento de libro a una pgina web 371
3.2 Publicacin de la pgina web 372
3.3 Ejemplo 372

4. Los objetos WebOptions y DefaultWebOptions 373

4.1 Propiedades 374


4.1.1 Opciones de la pestaa General 374
4.1.2 Opciones de la pestaa Exploradores 375
4.1.3 Opciones de la pestaa Archivos 376
4.1.4 Otras propiedades 376
4.2 Mtodo del objeto WebOptions 377

5. Importar, exportar y asignar archivos XML 377


5.1 Colecciones 378
5.2 Mtodos del objeto Workbook 379
5.3 Eventos del objeto Workbook 380
5.4 Mtodos del objeto XmlMap 381

6. El objeto HyperLink 381

6.1 Propiedades 381


6.2 Mtodos 382

Programacin en Windows

1. Presentacin de las API 383

2. Llamar a una funcin de la API de Windows 385


2.1 Sintaxis de la instruccin Declare 385
2.2 Paso de argumentos 386

3. Lista de funciones API de Windows 386

www.ediciones-eni.com Ediciones ENI 13/16


VBA Excel 2016
Programacin en Excel: Macros y lenguaje VBA

4. Ejemplos de uso de funciones API de Windows 387


4.1 Recuperar el directorio Windows 387
4.2 Abrir la calculadora de Windows 388

5. El objeto FileSystemObject 390


5.1 Mtodos 390
5.2 Propiedades 392
5.3 Ejemplo: copia de archivos de Excel 392

Cdigo de una miniaplicacin

1. Presentacin general 393

2. Descripcin de la aplicacin GestPresupuesto 394

3. Cinta de Office 2013 personalizada 396

3.1 Presentacin 396


3.2 Cdigo XML de la cinta personalizada 397

4. Mdulo ThisWorbook 398

4.1 Presentacin 398


4.2 Cdigo VBA del mdulo ThisWorkbook 398

5. Formulario NuevoPresupuesto 399

5.1 Presentacin 399


5.2 Lista de controles 399
5.3 Lista de celdas con nombre del modelo Presupuesto.xltx 400
5.4 Cdigo VBA del formulario NuevoPresupuesto 400

6. Formulario BuscarPresupuesto 403

6.1 Presentacin 403

www.ediciones-eni.com Ediciones ENI 14/16


VBA Excel 2016
Programacin en Excel: Macros y lenguaje VBA

6.2 Lista de controles 403


6.3 Cdigo VBA del formulario BuscarPresupuesto 404

7. Mdulos ProcCinta y ProcGene 407


7.1 Cdigo VBA del mdulo ProcCinta 407
7.2 Cdigo VBA del mdulo ProcGene 409

Anexos

1. Lista de instrucciones 413


1.1 Cadenas de caracteres 413
1.2 Fecha Hora/Matemticas 414
1.3 Declaracin 414
1.4 Error 416
1.5 Archivo 417
1.6 Estructuracin 421
1.7 Sistema 422
1.8 Diversas 423

2. Lista de funciones 424

2.1 Conversiones 424


2.2 Cadenas de caracteres 426
2.3 Matemticas 429
2.4 Financieras 431
2.5 Fechas y horas 433
2.6 Archivos, Sistema 436
2.7 Verificacin de variables 438
2.8 Interaccin 439
2.9 Matrices 439
2.10 SQL 440
2.11 Diversas 441
2.12 Solver 442

3. Constantes VBA 444

www.ediciones-eni.com Ediciones ENI 15/16


VBA Excel 2016
Programacin en Excel: Macros y lenguaje VBA

3.1 Constantes de color 444


3.2 Constantes de fecha 444
3.3 Constantes de teclas correspondientes a letras y nmeros 445
3.4 Constantes de teclas de funcin 445
3.5 Constantes de teclas diversas 446

ndice 449

www.ediciones-eni.com Ediciones ENI 16/16

También podría gustarte