You are on page 1of 31

Ediciones ENI

VBA Excel 2013


Programacin en Excel:
Macros y Lenguaje VBA

Coleccin
Recursos Informticos

Contenido

Contenido
Podr descargar algunos elementos de este libro en la pgina web
de Ediciones ENI: http://www.ediciones-eni.com.
Escriba la referencia ENI del libro RIT13EXCV en la zona de bsqueda
y valide. Haga clic en el ttulo y despus en el botn de descarga.

Prlogo
Captulo 1

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 ficha PROGRAMADOR en la cinta de opciones . . . 19
2.2 Descripcin de la ficha PROGRAMADOR . . . . . . . . . . . . . . . . . 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 . . . . 28
2.4.3 Habilitar las macros cuando aparece la advertencia
de seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

VBA Excel 2013

Programacin en Excel: macros y lenguaje VBA


2.4.4 Activar las macros en una ubicacin dada . . . . . . . . . . . . 30
2.4.5 Firmas electrnicas de macros . . . . . . . . . . . . . . . . . . . . . . 30
2.5 Modificar el cdigo de una macro . . . . . . . . . . . . . . . . . . . . . . . . 31
3. Asignar una macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.1 Acceso a una macro desde la cinta de opciones
de Office 2013 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2 Asociar una macro a un icono de la barra de herramientas
de acceso rpido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.3 Asociar una macro a un botn de comando . . . . . . . . . . . . . . . . 37
3.4 Asignar una macro a una imagen . . . . . . . . . . . . . . . . . . . . . . . . 38
3.5 Asociar una macro a una zona de un objeto grfico. . . . . . . . . . 38
3.6 Asociar una macro a una imagen Control ActiveX . . . . . . . . . . 39
4. El entorno de desarrollo VBE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.1 Acceso al entorno VBE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.2 Cerrar el entorno VBE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.3 Volver a Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.4 Descripcin del entorno VBE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.5 Elegir las ventanas que hay que mostrar. . . . . . . . . . . . . . . . . . . 44
5. Configuracin del editor VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.1 Configuracin de la tipografa . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.2 Configuracin de la introduccin de cdigo . . . . . . . . . . . . . . . . 45
5.3 Manejo de errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.4 Acoplar una ventana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Captulo 2

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

Contenido
2. Procedimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.1 Definiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.2 Acceso a los procedimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.3 Procedimientos Sub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.4 Procedimientos Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.5 Declaracin de procedimientos . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.6 Alcance de los procedimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.7 Argumentos de los procedimientos . . . . . . . . . . . . . . . . . . . . . . . 56
2.8 Argumentos con nombre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.9 Llamar a un procedimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.10 Llamar a una funcin VBA en una frmula Excel . . . . . . . . . . . 59
2.11 Ejemplos de procedimientos y funciones . . . . . . . . . . . . . . . . . . 62
3. Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.1 Tipos de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.2 Declaracin de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.2.1 Declaraciones implcitas. . . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.2.2 Declaraciones explcitas . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.2.3 Sintaxis de las instrucciones de declaracin . . . . . . . . . . . 69
3.3 Declaracin de los tipos de variables . . . . . . . . . . . . . . . . . . . . . . 70
3.3.1 Declaraciones explcitas del tipo . . . . . . . . . . . . . . . . . . . . 70
3.3.2 Declaraciones implcitas del tipo . . . . . . . . . . . . . . . . . . . . 71
3.4 Matrices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.5 Constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
3.5.1 Constantes personalizadas. . . . . . . . . . . . . . . . . . . . . . . . . 75
3.5.2 Constantes integradas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4. Estructuras de decisin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
4.1 Instruccin If . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
4.2 Instruccin Select Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5. Estructuras en ciclo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.1 Instruccin Do...Loop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.2 Instruccin While...Wend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.3 Instruccin For...Next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

VBA Excel 2013

Programacin en Excel: macros y lenguaje VBA


5.4 Instruccin For Each...Next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.5 Salir de las estructuras de control . . . . . . . . . . . . . . . . . . . . . . . . 87
6. Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.1 Operadores aritmticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.2 Operadores de comparacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.3 Operadores lgicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6.4 Operador de concatenacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6.5 Prioridad de los operadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
7. Reglas de escritura del cdigo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
7.1 Comentarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
7.2 Carcter de continuacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
7.3 Sangras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
7.4 Nombres de los procedimientos, variables y constantes . . . . . . 93
Captulo 3

La programacin de objetos en Excel


1. Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
2. El modelo de objetos de Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
2.1 Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
2.2 Objetos y colecciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
3. Principios de uso de los objetos y las colecciones . . . . . . . . . . . . . . . 100
3.1 Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
3.2 Propiedades que representan objetos. . . . . . . . . . . . . . . . . . . . . 100
3.3 Mtodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
3.4 Eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
3.5 Colecciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
3.6 Redaccin automtica de instrucciones . . . . . . . . . . . . . . . . . . 106
4. Instrucciones usadas con los objetos. . . . . . . . . . . . . . . . . . . . . . . . . 108
4.1 La instruccin With . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
4.2 La instruccin For Each...Next. . . . . . . . . . . . . . . . . . . . . . . . . . 109
4.3 La instruccin If TypeOf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

Contenido
4.4 La instruccin Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
5. El Examinador de objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
5.1 Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
5.2 Bsqueda en el Examinador de objetos . . . . . . . . . . . . . . . . . . . 113
Captulo 4

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

VBA Excel 2013

Programacin en Excel: macros y lenguaje VBA


2. Objeto Workbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
2.1 Objetos y colecciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
2.2 Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
2.2.1 Propiedades relativas a la actualizacin y registro
de libros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
2.2.2 Propiedades relativas a libros compartidos . . . . . . . . . . . 146
2.2.3 Otras propiedades. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
2.3 Lista de mtodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
2.3.1 Mtodos que actan directamente sobre los libros . . . . 151
2.3.2 Mtodos relativos a la seguridad . . . . . . . . . . . . . . . . . . . 153
2.3.3 Mtodos relativos a libros compartidos . . . . . . . . . . . . . 153
2.3.4 Mtodos relacionados con datos vinculados. . . . . . . . . . 154
2.3.5 Mtodos relativos al envo de libros . . . . . . . . . . . . . . . . 155
2.3.6 Otros mtodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
2.4 Ejemplos de cdigos que usan el objeto Workbook . . . . . . . . . 156
2.4.1 Creacin de un libro Excel . . . . . . . . . . . . . . . . . . . . . . . . 156
2.4.2 Importar una base de datos y exportarla
al formato HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
2.4.3 Mostrar las propiedades de un libro . . . . . . . . . . . . . . . . 158
2.4.4 Exportar un libro al formato PDF . . . . . . . . . . . . . . . . . . 159
3. El objeto Worksheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
3.1 Lista de objetos y colecciones . . . . . . . . . . . . . . . . . . . . . . . . . . 160
3.2 Objetos y colecciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
3.3 Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
3.4 Mtodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
3.5 Ejemplos de cdigos que usan el objeto Worksheet . . . . . . . . . 168
3.5.1 Ordenar las hojas de clculo de un libro . . . . . . . . . . . . . 168
3.5.2 Proteccin de las hojas de clculo de un libro . . . . . . . . . 169
3.5.3 Ordenar una tabla. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

Contenido
4. El objeto Range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
4.1 Propiedades y mtodos que devuelven un objeto Range . . . . . 170
4.2 Sintaxis de las propiedades
que devuelven un objeto Range173
4.3 Lista de objetos y colecciones. . . . . . . . . . . . . . . . . . . . . . . . . . . 177
4.4 Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
4.4.1 Propiedades relacionadas con la posicin y
el formato de las celdas . . . . . . . . . . . . . . . . . . . . . . . . . . 179
4.4.2 Propiedades que se relacionan con el contenido
de celdas y con las frmulas. . . . . . . . . . . . . . . . . . . . . . . 180
4.4.3 Otras propiedades. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
4.5 Mtodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
4.5.1 Mtodos que devuelven un objeto . . . . . . . . . . . . . . . . . 182
4.5.2 Mtodos que se relacionan con la presentacin
de las celdas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
4.5.3 Mtodos relacionados con el contenido de las celdas. . . 184
4.5.4 Mtodos relacionados con los nombres de celdas. . . . . . 186
4.5.5 Mtodos relacionados con los filtros . . . . . . . . . . . . . . . . 186
4.5.6 Mtodos relacionados con el modo esquema . . . . . . . . . 187
4.5.7 Mtodos que se relacionan con la herramienta
de Auditora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
4.5.8 Otros mtodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
5. Ejemplos de uso de los objetos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
5.1 Clculo del importe de un premio . . . . . . . . . . . . . . . . . . . . . . . 189
5.2 Asignar comentarios a las celdas . . . . . . . . . . . . . . . . . . . . . . . . 191
5.3 Creacin de una tabla dinmica con mini grficos. . . . . . . . . . 193

VBA Excel 2013

Programacin en Excel: macros y lenguaje VBA


Captulo 5

Cuadros de dilogo
1. Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
2. Cuadros de dilogo integrados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
2.1 El objeto Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
2.2 Los mtodos GetOpenFileName y GetSaveAsFileName . . . . . 199
3. Cuadros de dilogo predefinidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
3.1 La funcin InputBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
3.2 El mtodo InputBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
3.3 La funcin MsgBox. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
3.4 Constantes usadas en los cuadros de dilogo . . . . . . . . . . . . . . 207
Captulo 6

Formularios
1. Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
2. Crear un formulario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
3. Personalizar un formulario. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
3.1 Escribir procedimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
3.2 Lista de eventos asociados a los principales controles . . . . . . . 220
3.3 Ejecutar y cerrar un formulario . . . . . . . . . . . . . . . . . . . . . . . . . 226
4. Ejemplo de formulario personalizado . . . . . . . . . . . . . . . . . . . . . . . . 227
4.1 Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
4.2 Cdigo asociado al botn macro de la ficha Empleados. . . . . . 229
4.3 Cdigo VBA asociado al formulario . . . . . . . . . . . . . . . . . . . . . 229

Contenido
Captulo 7

Mejoras en la interfaz de usuario


1. Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
2. Personalizacin de la cinta con la utilidad Custom UI Editor . . . . . 236
2.1 Presentacin de la utilidad Custom UI Editor . . . . . . . . . . . . . 236
2.2 Ejemplo de cdigo XML de personalizacin . . . . . . . . . . . . . . . 238
2.3 Etiquetas XML correspondientes a los distintos elementos
de la cinta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
2.3.1 Fichas y grupos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
2.3.2 Principales controles de la cinta de opciones . . . . . . . . . 242
2.3.3 Atributos de los controles de la cinta de opciones . . . . . 245
2.3.4 Resumen de los atributos para cada control . . . . . . . . . . 247
2.3.5 Imgenes de la galera de iconos de Microsoft Office . . 249
2.3.6 Funciones de llamadas Callbacks. . . . . . . . . . . . . . . . . . . 249
2.3.7 Uso de las funciones de llamada Callbacks . . . . . . . . . . . 252
3. Ejemplo de cinta personalizada con el Custom UI Editor . . . . . . . . 253
3.1 Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
3.2 Cdigo XML de la cinta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
3.3 Cdigo VBA de personalizacin de la cinta
(mdulo "Cinta"). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
4. Personalizacin de la cinta de opciones mediante
la coleccin CommandBars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
5. Ejemplos de barras de comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
5.1 Barras de herramientas personalizadas . . . . . . . . . . . . . . . . . . . 262
5.2 Comandos de mens en formato Office 2013 . . . . . . . . . . . . . 262
5.3 Agregar el grupo a la barra de herramientas de acceso rpido . 262
6. Barras de comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
6.1 Terminologa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
6.1.1 Barra de comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
6.1.2 Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264

VBA Excel 2013

10

Programacin en Excel: macros y lenguaje VBA


6.2 Crear una barra de comandos . . . . . . . . . . . . . . . . . . . . . . . . . . 264
6.3 Eliminar una barra de comandos . . . . . . . . . . . . . . . . . . . . . . . . 265
6.4 Mostrar una barra de comandos . . . . . . . . . . . . . . . . . . . . . . . . 266
7. Controles (opciones o botones de comando)
de las barras de comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
7.1 Agregar un control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
7.2 Especificar el ttulo de un control . . . . . . . . . . . . . . . . . . . . . . . 268
7.3 Eliminar un control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
7.4 Asociar un procedimiento a un control. . . . . . . . . . . . . . . . . . . 268
7.5 Otras propiedades. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
7.6 Lista de imgenes asociadas a los botones de comando . . . . . . 270
8. Ejemplos de mens personalizados . . . . . . . . . . . . . . . . . . . . . . . . . . 272
8.1 Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
8.2 Cdigo de los ejemplos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
8.3 Cdigo del mdulo de clase ThisWorkbook . . . . . . . . . . . . . . . 274
8.4 Cdigo de la hoja "Nota de Gastos" . . . . . . . . . . . . . . . . . . . . . . 274
8.5 Cdigo del mdulo ProcMenus . . . . . . . . . . . . . . . . . . . . . . . . . 275
8.6 Cdigo del mdulo ProcAction . . . . . . . . . . . . . . . . . . . . . . . . . 280
Captulo 8

Administracin de eventos
1. Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
2. Escritura de eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
2.1 Eventos de libro, de hoja o de formulario . . . . . . . . . . . . . . . . . 284
2.2 Eventos del objeto Application . . . . . . . . . . . . . . . . . . . . . . . . . 286
2.3 Evento asociado a un grfico incrustado. . . . . . . . . . . . . . . . . . 289
3. Eventos del objeto Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
4. Eventos del objeto Workbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
5. Eventos del objeto Worksheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
6. Eventos del objeto Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301

Contenido
Captulo 9

Depuracin y administracin de errores


1. Diferentes tipos de error. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
1.1 Errores de sintaxis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
1.2 Errores de compilacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
1.3 Errores de ejecucin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
1.4 Errores de lgica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
2. Depuracin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
2.1 Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
2.2 La barra de herramientas Depuracin . . . . . . . . . . . . . . . . . . . . 307
2.3 El objeto Debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
3. Administracin de errores en VBA . . . . . . . . . . . . . . . . . . . . . . . . . . 310
3.1 El objeto Err. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
Captulo 10

Comunicacin con las aplicaciones Office 2013


1. La tecnologa Automation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
1.1 Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
1.2 Uso de la tecnologa Automation . . . . . . . . . . . . . . . . . . . . . . . 317
2. Comunicacin con Word desde Excel . . . . . . . . . . . . . . . . . . . . . . . . 318
2.1 El modelo de objeto Word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
2.2 Principales colecciones del modelo de objetos Word . . . . . . . . 319
2.3 Principales objetos del modelo de objetos Word. . . . . . . . . . . . 320
2.4 La coleccin Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
2.5 Objetos Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
2.6 Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
3. Comunicacin con Access desde Excel . . . . . . . . . . . . . . . . . . . . . . . 327
3.1 El modelo de objeto Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
3.2 Principales colecciones del modelo de objeto Access . . . . . . . . 328
3.3 Principales objetos del modelo de objeto Access. . . . . . . . . . . . 328

11

VBA Excel 2013

12

Programacin en Excel: macros y lenguaje VBA


3.4 Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
3.4.1 Listar tablas de una base Access . . . . . . . . . . . . . . . . . . . 330
3.4.2 Mostrar una tabla Access en Excel . . . . . . . . . . . . . . . . . 331
3.4.3 Abrir una tabla o consulta Access en un nuevo libro . . . 332
4. Comunicacin con Outlook desde Excel. . . . . . . . . . . . . . . . . . . . . . 333
4.1 Objetos Outlook. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
4.2 Acceso a los objetos Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
4.2.1 Creacin de un objeto (e-mail, contacto...)
en Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
4.2.2 Acceso a los objetos (contactos, citas)
de Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
4.3 Ejemplo de uso del objeto MailItem . . . . . . . . . . . . . . . . . . . . . 336
5. Objetos vinculados o incrustados . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
5.1 Mtodos del objeto OLEObject . . . . . . . . . . . . . . . . . . . . . . . . . 338
5.2 Propiedades del objeto OLEObject . . . . . . . . . . . . . . . . . . . . . . 338
6. Mtodos y propiedades relativos a los vnculos con Excel . . . . . . . . 339
6.1 Mtodos y propiedades del objeto Workbook . . . . . . . . . . . . . 339
6.2 Mtodos y propiedades de otros objetos. . . . . . . . . . . . . . . . . . 341
Captulo 11

Internet

1. Consultas por Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343


2. El objeto QueryTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
2.1 Propiedades del objeto QueryTable . . . . . . . . . . . . . . . . . . . . . . 346
2.2 Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
3. Publicacin de pginas Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
3.1 Asociacin de un elemento de libro a una pgina Web . . . . . . 353
3.2 Publicacin de la pgina Web. . . . . . . . . . . . . . . . . . . . . . . . . . . 354
3.3 Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354

Contenido
4. Los objetos WebOptions y DefaultWebOptions . . . . . . . . . . . . . . . 355
4.1 Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
4.1.1 Opciones de la ficha General . . . . . . . . . . . . . . . . . . . . . . 356
4.1.2 Opciones de la ficha Exploradores . . . . . . . . . . . . . . . . . . 357
4.1.3 Opciones de la ficha Archivos . . . . . . . . . . . . . . . . . . . . . 358
4.1.4 Otras propiedades. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
4.2 Mtodo del objeto WebOptions . . . . . . . . . . . . . . . . . . . . . . . . 359
5. Importar, exportar y asignar archivos XML . . . . . . . . . . . . . . . . . . . 359
5.1 Colecciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
5.2 Mtodos del objeto Workbook . . . . . . . . . . . . . . . . . . . . . . . . . 361
5.3 Eventos del objeto Workbook . . . . . . . . . . . . . . . . . . . . . . . . . . 362
5.4 Mtodos del objeto XmlMap . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
6. El objeto HyperLink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
6.1 Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
6.2 Mtodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
Captulo 12

Programacin Windows
1. Presentacin de las API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
2. Llamar a una funcin de la API Windows. . . . . . . . . . . . . . . . . . . . . 369
2.1 Sintaxis de la instruccin Declare . . . . . . . . . . . . . . . . . . . . . . . 369
2.2 Paso de argumentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
3. Lista de funciones API Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
4. Ejemplos de uso de funciones API Windows . . . . . . . . . . . . . . . . . . 371
4.1 Recuperar el directorio Windows . . . . . . . . . . . . . . . . . . . . . . . 371
4.2 Abrir la calculadora de Windows. . . . . . . . . . . . . . . . . . . . . . . . 372
5. El objeto FileSystemObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
5.1 Mtodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
5.2 Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
5.3 Ejemplo: copia de archivos Excel . . . . . . . . . . . . . . . . . . . . . . . . 376

13

VBA Excel 2013

14

Programacin en Excel: macros y lenguaje VBA


Captulo 13

Cdigo de una miniaplicacin


1. Presentacin general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
2. Descripcin de la aplicacin GestPresupuesto . . . . . . . . . . . . . . . . . 378
3. Cinta Office 2013 personalizada . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
3.1 Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
3.2 Cdigo XML de la cinta personalizada . . . . . . . . . . . . . . . . . . . 381
4. Mdulo ThisWorbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
4.1 Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
4.2 Cdigo VBA del mdulo ThisWorkbook . . . . . . . . . . . . . . . . . 382
5. Formulario NuevoPresupuesto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
5.1 Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
5.2 Lista de controles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
5.3 Lista de celdas con nombre del modelo Presupuesto.xltx . . . . 384
5.4 Cdigo VBA del formulario NuevoPresupuesto . . . . . . . . . . . . 384
6. Formulario BuscarPresupuesto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
6.1 Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
6.2 Lista de controles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
6.3 Cdigo VBA del formulario BuscarPresupuesto . . . . . . . . . . . . 388
7. Mdulos ProcCinta y ProcGene. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
7.1 Cdigo VBA del mdulo ProcCinta. . . . . . . . . . . . . . . . . . . . . . 391
7.2 Cdigo VBA del mdulo ProcGene . . . . . . . . . . . . . . . . . . . . . . 393

Contenido
Anexos
1. Lista de instrucciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
1.1 Cadenas de caracteres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
1.2 Fecha Hora/Matemticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
1.3 Declaracin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
1.4 Error. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
1.5 Archivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
1.6 Estructuracin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
1.7 Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
1.8 Diversas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
2. Lista de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
2.1 Conversiones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
2.2 Cadenas de caracteres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
2.3 Matemticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
2.4 Financieras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
2.5 Fechas y horas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
2.6 Archivos, Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420
2.7 Verificacin de variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
2.8 Interaccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
2.9 Matrices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
2.10 SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
2.11 Diversas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
2.12 Solver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
3. Constantes VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
3.1 Constantes de color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
3.2 Constantes de fecha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
3.3 Constantes de teclas correspondientes a letras y nmeros . . . 429
3.4 Constantes de teclas de funcin . . . . . . . . . . . . . . . . . . . . . . . . 429
3.5 Constantes de teclas diversas. . . . . . . . . . . . . . . . . . . . . . . . . . . 430
ndice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433

15

Ediciones ENI

VBA Access 2013


Programar en Access

Coleccin
Recursos Informticos

Contenido

Contenido

Podr descargar algunos elementos de este libro en la pgina web


de Ediciones ENI: http:www.ediciones-eni.com.
Escriba la referencia ENI del libro RIT13ACCV en la zona de bsqueda y
valide. Haga clic en el ttulo y despus en el botn de descarga.
Introduccin
1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2. Objetivos del libro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Captulo 1

Generalidades
1. Revisin de conceptos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2. Principios fundamentales de VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3. Conversin de macros a VBA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.1 Conversin de las macros en un formulario o en un informe . . 22
3.2 Conversin de macros globales . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4. Seguridad de la base de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.1 Modificacin de los parmetros de seguridad
de una base de datos Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.2 Modificacin de los parmetros de seguridad por defecto . . . . . 25
4.3 Descripcin de las diferentes opciones de seguridad . . . . . . . . . 25
4.4 Documentos confiables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.5 Ubicaciones de confianza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.6 Editores de confianza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5. Publicar una base de datos Access mediante un paquete firmado. . . 29
5.1 Obtener un certificado digital . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.2 Crear y firmar un paquete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

VBA Access 2013

Programar en Access

6. El entorno de desarrollo IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31


6.1 Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.2 Ventanas del entorno IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
7. Configuracin del editor VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
7.1 Configuracin de los colores del editor . . . . . . . . . . . . . . . . . . . . 35
7.2 Configuracin de la presentacin del cdigo . . . . . . . . . . . . . . . 36
8. Referencia a los objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
9. Creacin de un procedimiento en VBA . . . . . . . . . . . . . . . . . . . . . . . . 37
10. Consejos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Captulo 2

El lenguaje Visual Basic


1. Los mdulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2. Los procedimientos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.1 Los procedimientos Sub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.2 Los procedimientos Function. . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.3 Declaracin de los procedimientos . . . . . . . . . . . . . . . . . . . . . . . 47
2.4 Alcance de los procedimientos. . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.5 Argumentos de los procedimientos . . . . . . . . . . . . . . . . . . . . . . . 49
2.6 Los argumentos con nombre . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.7 Llamada a un procedimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.8 Ejemplos de procedimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.9 La funcin MsgBox. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3. Las variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.1 Los tipos de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.2 Las declaraciones de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.3 El alcance de las variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.4 Las matrices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.5 Las constantes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

Contenido
4. Las estructuras de decisin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.1 La instruccin IF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.2 La instruccin Select Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.3 La funcin IIf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5. Las estructuras en bucle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.1 La instruccin Do...Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.2 La instruccin While...Wend . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.3 La instruccin For...Next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.4 La instruccin For Each...Next. . . . . . . . . . . . . . . . . . . . . . . . . . . 74
6. Los operadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
6.1 Los operadores aritmticos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
6.2 Los operadores de comparacin . . . . . . . . . . . . . . . . . . . . . . . . . . 76
6.3 Los operadores lgicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.4 El operador de concatenacin . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
6.5 Prioridad de los operadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
7. Las reglas de escritura del cdigo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
7.1 Los comentarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
7.2 El carcter de continuacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
7.3 La indentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
7.4 Los nombres de procedimientos, variables y constantes . . . . . . 81
8. Las convenciones de llamada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
8.1 Convencin de llamada de las variables . . . . . . . . . . . . . . . . . . . 81
8.2 Convencin de llamada de los controles . . . . . . . . . . . . . . . . . . . 82
8.3 Convencin de llamada de los objetos . . . . . . . . . . . . . . . . . . . . 83
Captulo 3

Objetos y colecciones
1. Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
2. El modelo de objetos de Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
2.1 Principales colecciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
2.2 Objetos del Modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

VBA Access 2013

Programar en Access

3. Principios de utilizacin de los objetos y de las colecciones . . . . . . . 90


3.1 Las propiedades. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
3.2 Propiedades que representan objetos. . . . . . . . . . . . . . . . . . . . . . 90
3.3 Los mtodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
3.4 Los eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
3.5 Las colecciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
3.6 Presentacin automtica de instrucciones . . . . . . . . . . . . . . . . . 96
4. Instrucciones utilizadas con los objetos . . . . . . . . . . . . . . . . . . . . . . . 99
4.1 La instruccin With . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.2 La instruccin For each...Next . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.3 La instruccin If TypeOf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.4 La instruccin Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5. Las clases de objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
5.1 Descripcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
5.2 Los mdulos de clase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
5.3 Ejemplo de mdulos de clase . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
6. El examinador de objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
6.1 Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
6.2 Bsqueda en el examinador de objetos . . . . . . . . . . . . . . . . . . . 114
7. Propiedades y mtodos de objetos de Access . . . . . . . . . . . . . . . . . . 115
7.1 El objeto Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
7.2 El objeto DoCmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
7.3 El objeto Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
7.4 La coleccin References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.5 La coleccin Printers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

Contenido
Captulo 4

Objetos de acceso a datos


1. Objetos de acceso a datos DAO y ADO . . . . . . . . . . . . . . . . . . . . . . 137
2. El modelo de acceso a datos DAO . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
2.1 Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
2.2 Jerarqua de los objetos DAO. . . . . . . . . . . . . . . . . . . . . . . . . . . 139
2.3 Descripcin de las colecciones . . . . . . . . . . . . . . . . . . . . . . . . . . 140
2.4 El objeto DBEngine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
2.5 Los objetos Workspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
2.6 Les objetos Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
2.7 Los objetos Recordset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
2.8 Los objetos Tabledef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
2.9 Los objetos Field e Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
2.9.1 Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
2.9.2 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
2.10 Los objetos QueryDef y Parameter . . . . . . . . . . . . . . . . . . . . . . 158
2.10.1QueryDef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
2.10.2Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
2.11 Los objetos Relation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
2.12 Los objetos Container y Document . . . . . . . . . . . . . . . . . . . . . 163
2.12.1Container . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
2.12.2Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
2.13 Los objetos Group y User . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
2.13.1User . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
2.13.2Group. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
2.14 El objeto Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
2.15 Los objetos Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
3. El modelo de acceso a datos ADO . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
3.1 Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
3.2 ADO y OLE DB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
3.3 Jerarqua de los objetos ADO. . . . . . . . . . . . . . . . . . . . . . . . . . . 172
3.4 Modelo de base de programacin ADO . . . . . . . . . . . . . . . . . . 173

VBA Access 2013

Programar en Access

3.5 Descripcin de los objetos ADO . . . . . . . . . . . . . . . . . . . . . . . . 174


3.6 Las colecciones ADO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
3.7 Los objetos Connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
3.8 Los objetos Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
3.9 Los objetos Recordset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
3.10 La coleccin Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
3.11 Los objetos Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
3.12 La coleccin Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
3.13 Los objetos Parameter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
3.14 La coleccin Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
3.15 Los objetos Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
3.16 La coleccin Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
3.17 Los objetos Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Captulo 5

El lenguaje SQL
1. Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
2. Lenguaje SQL y VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
3. Descripcin del lenguaje SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
3.1 La instruccin SELECT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
3.2 La clusula FROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
3.3 La clusula WHERE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
3.4 La clusula GROUP BY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
3.5 La clusula HAVING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
3.6 La clusula ORDER BY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
3.7 La instruccin UPDATE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
3.8 La instruccin DELETE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
3.9 La instruccin INSERT INTO . . . . . . . . . . . . . . . . . . . . . . . . . . 200
3.10 Otras instrucciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

Contenido
4. Ejemplos de utilizacin de consultas SQL. . . . . . . . . . . . . . . . . . . . . 202
4.1 Actualizacin de registros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
4.2 Carga de una lista desplegable . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Captulo 6

Gestin de los eventos


1. Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
1.1 Definicin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
1.2 Asociacin de cdigo VBA a un evento . . . . . . . . . . . . . . . . . . . 208
2. Categoras de eventos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
2.1 Eventos de tipo Ventana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
2.2 Eventos de tipo Enfoque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
2.3 Eventos de tipo Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
2.4 Eventos de tipo Ratn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
2.5 Eventos de tipo Teclado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
2.6 Eventos de tipo Impresin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
2.7 Eventos de tipo Filtro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
2.8 Eventos de tipo Error y Cronmetro . . . . . . . . . . . . . . . . . . . . . 216
3. Cancelacin de un evento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
4. Secuencias de tipos de eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
5. Los eventos de actualizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Captulo 7

Depuracin y gestin de errores


1. Los distintos tipos de error. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
1.1 Los errores de sintaxis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
1.2 Los errores de compilacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
1.3 Los errores de ejecucin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
1.4 Los errores de lgica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

VBA Access 2013

Programar en Access

2. Depuracin con VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225


2.1 Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
2.2 La barra de herramientas Depuracin . . . . . . . . . . . . . . . . . . . . 225
2.3 El objeto Debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
3. Gestin de errores con VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
3.1 Principios. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
3.2 El procedimiento de evento Error . . . . . . . . . . . . . . . . . . . . . . . 228
3.3 La instruccin On Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
3.4 El objeto Err . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Captulo 8

Personalizar formularios e informes


1. Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
2. Personalizacin de los formularios . . . . . . . . . . . . . . . . . . . . . . . . . . 234
2.1 Sintaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
2.2 Propiedades disponibles en vista Diseo . . . . . . . . . . . . . . . . . . 235
2.2.1 Propiedades de la ficha Formato . . . . . . . . . . . . . . . . . . . 236
2.2.2 Propiedades de la ficha Datos . . . . . . . . . . . . . . . . . . . . . 239
2.2.3 Propiedades de la ficha Eventos . . . . . . . . . . . . . . . . . . . . 241
2.2.4 Propiedades de la ficha Otras . . . . . . . . . . . . . . . . . . . . . . 245
2.3 Propiedades no disponibles en modo Diseo . . . . . . . . . . . . . . 246
2.3.1 Propiedades relativas al modo de ver el formulario . . . . 246
2.3.2 Propiedades relativas a los registros
y a su actualizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
2.3.3 Propiedades relativas a la presentacin del formulario . 247
2.3.4 Propiedades que devuelven un objeto . . . . . . . . . . . . . . . 249
2.3.5 Propiedades relativas a la impresin del formulario . . . . 249
2.4 Mtodos del objeto Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250

Contenido
3. Personalizacin de los informes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
3.1 Sintaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
3.2 Propiedades disponibles en vista Diseo . . . . . . . . . . . . . . . . . . 252
3.2.1 Propiedades de la ficha Formato . . . . . . . . . . . . . . . . . . . 252
3.2.2 Propiedades de la ficha Datos . . . . . . . . . . . . . . . . . . . . . 255
3.2.3 Propiedades de la ficha Eventos . . . . . . . . . . . . . . . . . . . . 256
3.2.4 Propiedades de la ficha Otras . . . . . . . . . . . . . . . . . . . . . . 258
3.3 Propiedades no disponibles en modo Diseo . . . . . . . . . . . . . . 259
3.3.1 Propiedades relativas al modo de ver el informe. . . . . . . 259
3.3.2 Propiedades relativas a los registros
y a su actualizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
3.3.3 Propiedades relativas a la presentacin del informe . . . . 260
3.3.4 Propiedades que devuelven un objeto . . . . . . . . . . . . . . . 261
3.3.5 Propiedades relativas a la impresin del informe . . . . . . 262
3.3.6 Otras propiedades. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
3.4 Mtodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
4. Los objetos Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
4.1 Sintaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
4.2 Propiedades comunes de la mayora de los controles . . . . . . . . 265
4.2.1 Propiedades que devuelvan objetos . . . . . . . . . . . . . . . . . 265
4.2.2 Otras propiedades. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
4.3 Mtodos comunes a la mayora de los controles . . . . . . . . . . . 265
4.4 El mtodo Move . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
5. Los controles de Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
5.1 Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
5.2 Lista de los controles Access . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

VBA Access 2013

10

Programar en Access

Captulo 9

Mejoras de la interfaz de usuario


1. Las opciones de inicio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
2. Personalizacin de la cinta de opciones. . . . . . . . . . . . . . . . . . . . . . . 271
2.1 Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
2.2 Configuracin de Access para la personalizacin
de la cinta de opciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
2.2.1 Mostrar las tablas del sistema
en el panel de navegacin. . . . . . . . . . . . . . . . . . . . . . . . . 272
2.2.2 Mostrar mensajes de error contenidos
en el cdigo XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
2.3 Creacin de una tabla del sistema USysRibbons . . . . . . . . . . . 273
2.4 Adicin de cdigo XML de personalizacin
a la tabla USysRibbons. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
2.5 Asociacin de la cinta de opciones a la aplicacin activa . . . . . 275
2.6 Asociacin de la cinta de opciones a un formulario
o a un informe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
3. Presentacin del lenguaje XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
3.1 El lenguaje XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
3.2 Elementos XML utilizados para personalizar
la cinta de opciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
3.2.1 Principales marcas activas XML utilizadas
en el cdigo XML de una cinta de opciones . . . . . . . . . . 277
3.2.2 Propiedades asociadas a los objetos
de una cinta de opciones . . . . . . . . . . . . . . . . . . . . . . . . . 278
4. Ejemplo de cinta de opciones personalizada . . . . . . . . . . . . . . . . . . . 279
4.1 Cdigo XML de la cinta de opciones personalizada . . . . . . . . . 279
4.2 Cdigo VBA llamado por los comandos
de la cinta de opciones personalizada . . . . . . . . . . . . . . . . . . . . 283
5. Imgenes de la galera de iconos de Microsoft Office . . . . . . . . . . . 284

Contenido
Captulo 10

Comunicacin con aplicaciones 2013


1. La tecnologa Automatizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
1.1 Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
1.2 Utilizacin de la tecnologa Automatizacin . . . . . . . . . . . . . . 289
2. Controlar Word desde Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
2.1 El modelo Objeto Word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
2.2 Principales colecciones del modelo de objetos Word . . . . . . . . 291
2.3 Principales objetos del modelo objeto de Word . . . . . . . . . . . . 292
2.4 La coleccin Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
2.5 Los objetos Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
3. Controlar Excel desde Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
3.1 El modelo Objeto Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
3.2 Principales colecciones de la aplicacin Excel . . . . . . . . . . . . . . 298
3.3 La coleccin Workbooks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
3.4 Los objetos Workbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
3.4.1 Principales mtodos del objeto Workbook . . . . . . . . . . . 299
3.4.2 Las principales colecciones asociadas
al objeto Workbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
3.5 Escritura de datos en celdas Excel . . . . . . . . . . . . . . . . . . . . . . . 300
4. Controlar Outlook desde Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
4.1 El modelo Objeto Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
4.2 Ejemplo: mostrar los contactos de Outlook . . . . . . . . . . . . . . . 303
Captulo 11

Programacin en Internet
1. Importacin y exportacin de datos en formato XML . . . . . . . . . . 305
1.1 El mtodo ExportXML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
1.2 El mtodo ImportXML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
1.3 Ejemplo de importacin/exportacin XML . . . . . . . . . . . . . . . 308
2. Ejemplo de creacin de un archivo HTML . . . . . . . . . . . . . . . . . . . . 312

11

VBA Access 2013

12

Programar en Access

Captulo 12

Programacin en Windows
1. Presentacin de las API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
2. Llamada a una funcin de la API Windows . . . . . . . . . . . . . . . . . . . 316
2.1 Sintaxis de la instruccin Declare . . . . . . . . . . . . . . . . . . . . . . . 316
2.2 Paso de argumentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
3. Lista de funciones de la API Windows . . . . . . . . . . . . . . . . . . . . . . . 319
4. Ejemplos de utilizacin de funciones de la API Windows . . . . . . . . 320
4.1 Recuperacin del directorio de Windows . . . . . . . . . . . . . . . . . 320
4.2 Inicio de la aplicacin Excel si no est activa . . . . . . . . . . . . . . 321
4.3 Recuperacin de un valor en un archivo .ini. . . . . . . . . . . . . . . 322
5. El objeto FileSystemObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
5.1 Mtodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
5.2 Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
5.3 Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
Captulo 13

Cdigo de una mini-aplicacin


1. Presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
1.1 Enunciado del problema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
1.2 Base de datos Cursos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
1.3 Modelo relacional de la base . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
2. Formulario "Cursos" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
2.1 Lista de controles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
2.2 Cdigo VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
2.3 Subformulario "SF Participantes". . . . . . . . . . . . . . . . . . . . . . . . 335
2.4 Cdigo VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336

Contenido
3. Formulario "Buscar" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
3.1 Lista de controles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
3.2 Cdigo VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
3.3 Subformulario "SF Cursos". . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
3.4 Informe "Cursos". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342

Anexos
1. Funciones e instrucciones VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
1.1 Manipulacin de cadenas de caracteres. . . . . . . . . . . . . . . . . . . 345
1.2 Control del funcionamiento del programa . . . . . . . . . . . . . . . . 346
1.3 Conversin de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
1.4 Fecha y hora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
1.5 Declaracin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
1.6 Dominio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
1.7 Intercambio dinmico de datos . . . . . . . . . . . . . . . . . . . . . . . . . 351
1.8 Entrada y salida de archivos. . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
1.9 Financieras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
1.10 Gestin de errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
1.11 Grficos en los informes impresos . . . . . . . . . . . . . . . . . . . . . . . 355
1.12 Vinculacin e incrustacin de objetos. . . . . . . . . . . . . . . . . . . . 356
1.13 Manipulacin de objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
1.14 Matemticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
1.15 SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
1.16 Matrices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
1.17 Control de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
1.18 Funciones e instrucciones diversas . . . . . . . . . . . . . . . . . . . . . . 359
1.19 Cdigos de error interceptables . . . . . . . . . . . . . . . . . . . . . . . . . 360

13

14

VBA Access 2013

Programar en Access

2. Constantes VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366


2.1 Constantes de color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
2.2 Constantes de fecha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
2.3 Constantes de teclas teclado alfanumrico. . . . . . . . . . . . . . . . 367
2.4 Constantes de teclas de funcin . . . . . . . . . . . . . . . . . . . . . . . . 367
2.5 Constantes de teclas diversas. . . . . . . . . . . . . . . . . . . . . . . . . . . 368
3. Mtodos abreviados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
ndice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371