Introducción
Obtener resultados con VBA
Qué hay en este libro
Acelerar el ritmo de aprendizaje
El poder de Excel VBA
El material técnico necesario para crear aplicaciones
¿Enseña Excel este libro?
El futuro de VBA y las versiones de Excel para Windows
Versiones de Excel
Diferencias para usuarios de Mac
Convenciones
Código fuente
1. Descubrir la potencia de Excel con VBA
El poder de Excel
Barreras
¡El grabador de macros no funciona!
Visual Basic no es como BASIC
Lo bueno es que es fácil aprender
Lo mejor es que Excel con VBA merece el esfuerzo
Conozca sus herramientas: La ficha Desarrollador
Entender qué tipo de archivos permiten macros
Seguridad de macro
Agregar una ubicación de confianza
Configuración de macros para habilitar macros en libros que no están en ubicaciones de confianza
Usar Deshabilitar todas las macros con notificación
Visión de conjunto de la grabación, almacenamiento y ejecución de una macro
Completar el cuadro de diálogo Grabar macro
Ejecutar una macro
Creación de un botón de macro en la Cinta de opciones
Crear un botón de macro en la Barra de herramientas de acceso rápido
Asignar una macro a un control de formulario, un cuadro de texto o una forma
Entender el Editor de Visual Basic
Configuración del editor de VB
El explorador de proyectos
La ventana Propiedades
Comprensión de las deficiencias del grabador de macros
Examinar el código en la ventana Programación
Probar cada macro
Ejecutar la macro otro día produce resultados indeseados
Solución posible: Utilizar referencias relativas al grabar
Nunca utilice Autosuma ni Análisis rápido mientras graba una macro
Tres trucos a tener en cuenta cuando se utilice el grabador de macros
Truco 1: Por lo general, es necesario que el parámetro
Usar referencias relativas esté activado
Truco 2: Utilice las teclas especiales de navegación para moverse a la parte inferior de un conjunto de datos
Truco 3: Nunca toque el icono Autosuma mientras graba una macro
A continuación
2. Esto suena como BASIC pero, ¿por qué no me resulta familiar?
No entiendo este código
Entender las partes del discurso VBA
VBA no es realmente tan difícil
Los archivos de ayuda de VBA: Pulse F1 para encontrar algo
Utilizar temas de ayuda
Examinar el código de una macro grabada utilizando el editor y la ayuda de VB
Parámetros opcionales
Constantes definidas
Las propiedades pueden devolver objetos
Utilizar herramientas de depuración para entender el código grabado
Código paso a paso
Más opciones de depuración: Puntos de interrupción
Desplazarse por el código
No pasar por cada línea de código
Realizar consultas mientras se pasa por el código
Utilizar la ventana Inmediato
Realizar una consulta pasando el cursor por encima
Realizar consultas con una ventana de inspección
Utilizar una inspección para establecer un punto de interrupción
Utilizar una Inspección sobre un objeto
El Examinador de objetos: La referencia definitiva
Siete trucos para limpiar el código grabado
Truco 1: No seleccione nada
Truco 2: Cells(2,5) es mejor que Range("E2")
Truco 3: Utilice formas más fiables de encontrar la última fila
Truco 4: Utilice variables para evitar tener que escribir filas y fórmulas
Truco 5: Formulas F1C1 que facilitan las cosas
Truco 6: Aprenda a copiar y pegar con una sola sentencia
Truco 7: Utilice With...End With para realizar múltiples acciones
A continuación
3. Referencias a rangos
El objeto Range
Sintaxis para especificar un rango
Rangos con nombre
Método abreviado para hacer referencia a rangos
Hacer referencia a rangos en otras hojas
Referir un rango relativo a otro rango
Utilizar la propiedad Cells para seleccionar un rango
Utilizar la propiedad Offset para hacer referencia a un rango
Utilizar la propiedad Resize para cambiar el tamaño de un rango
Utilizar las propiedades Columns y Rows para especificar un rango
Utilizar el método Union para unir múltiples rangos
Utilizar el método Intersect para crear un nuevo rango a partir de rangos solapados
Utilizar la función IsEmpty para comprobar si una celda está vacía
Utilizar la propiedad CurrentRegion para seleccionar un rango de datos
Utilizar la colección Areas para devolver un rango no contiguo
Referencias a tablas
A continuación
4. Bucles y control de flujo
Bucles For...Next
Utilizar variables en la sentencia For
Variaciones en el bucle For...Next
Salir de un bucle antes de que se cumpla una condición
Anidar un bucle dentro de otro
Bucles Do
Utilizar la cláusula While o Until en bucles Do
Bucles While...Wend
El bucle de VBA: For Each
Variables de objeto
Control de flujo con If...Then...Else y Select Case
Control de flujo básico: If...Then...Else
Condiciones
If...Then...End If
Decisiones o/o: If...Then...Else...End If
Utilizar If...Else If...End If para múltiples condiciones
Utilizar Select Case...End Select para múltiples condiciones
Expresiones complejas en sentencias Case
Anidar sentencias If
A continuación
5. Fórmulas de estilo F1C1
Referencias a celdas: A1 frente a referencias F1C1
Cambiar Excel para que muestre las referencias de estilo F1C1
El milagro de las fórmulas de Excel
Escribir una fórmula una vez y copiarla mil veces
El secreto: No es tan asombroso
Explicación del estilo de referencia F1C1
Utilizar F1C1 con referencias relativas
Utilizar F1C1 con referencias absolutas
Utilizar F1C1 con referencias mixtas
Hacer referencias a columnas o filas enteras con estilo F1C1
Reemplazar muchas fórmulas A1 con una sola fórmula F1C1
Crear la tabla
Un giro interesante
Recordar números de columna asociados con letras de columna
Las fórmulas de matriz requieren fórmulas F1C1
A continuación
6. Creación y manipulación de nombres en VBA
Nombres en Excel
Nombres globales frente a Nombres locales
Añadir nombres
Eliminar nombres
Añadir comentarios
Tipos de nombres
Fórmulas
Cadenas
Números
Tablas
Utilizar matrices en nombres
Nombres reservados
Ocultar nombres
Comprobar la existencia de un nombre
A continuación
7. Programación de eventos
Niveles de eventos
Utilizar eventos
Parámetros de evento
Habilitar eventos
Eventos de libro
Eventos de gráfico y de hoja a nivel de libro
Eventos de hoja
Eventos de hoja de gráfico
Gráficos incrustados
Eventos a nivel de aplicación
A continuación
8. Matrices
Declarar una matriz
Declarar una matriz multidimensional
Rellenar una matriz
Recuperar datos de una matriz
Utilizar matrices para acelerar el código
Utilizar matrices dinámicas
Pasar una matriz
A continuación
9. Crear clases, registros y colecciones
Insertar un módulo de clase
Capturar eventos de aplicación y de gráficos incrustados
Eventos de aplicación
Eventos de gráfico incrustado
Crear un objeto personalizado
Utilizar un objeto personalizado
Utilizar Property Let y Property Get para controlar cómo los usuarios utilizan objetos personalizados
Utilizar colecciones para albergar múltiples registros
Crear una colección en un módulo estándar
Crear una colección en un módulo de clase
Utilizar tipos definidos por el usuario para crear propiedades personalizadas
A continuación
10. UserForm: Introducción
Métodos de interacción de usuario
Cuadros de entrada
Cuadros de mensaje
Crear un formulario de usuario
Llamar y ocultar un formulario de usuario
Programación de un formulario de usuario
Eventos de formulario de usuario
Programación de controles
Utilizar controles básicos de formulario
Utilización de etiquetas, cuadros de texto y botones de comando
Decidir si se utiliza cuadros de lista o cuadros combinados en nuestros formularios
Utilizar la propiedad MultiSelect de un cuadro de lista
Añadir botones de opción a un formulario de usuario
Añadir gráficos a un formulario de usuario
Utilizar botón de número en un formulario de usuario
Utilizar el control Página múltiple para combinar formularios
Verificar que los campos se completan
Cierre inapropiado de ventana
Obtener un nombre de archivo
A continuación
11. Extracción de datos con el filtro avanzado
Reemplazar un bucle con AutoFilter
Utilizar nuevas técnicas de autofiltro
Seleccionar múltiples elementos
Usar el cuadro de búsqueda
Filtrar por color
Filtrar por icono
Seleccionar un rango de datos dinámico con autofiltros
Seleccionar sólo celdas visibles
El filtro avanzado es más sencillo en VBA que en Excel
Utilizar la interfaz de Excel para crear un filtro avanzado
Utilizar el filtro avanzado para extraer una lista única de valores
Extraer una lista única de valores con la interfaz de usuario
Cambie el rango de la lista a una sola columna
Copie el encabezado Customer antes de filtrar
Extraer una lista única de valores con código VBA
Obtener combinaciones únicas de dos o más campos
Utilizar filtro avanzado con rangos de criterios
Unir múltiples criterios con un operador lógico OR
Unir dos criterios con un AND lógico
Otros rangos de criterios algo complejos
El criterio más complejo: Reemplazar la lista de valores con una condición creada como resultado de una fórmula
Establecer una condición como resultado de una fórmula
Utilizar condiciones basadas en fórmula con VBA
Utilizar condiciones basadas en fórmula para devolver registros por encima de la media
Utilizar un filtro avanzado in situ
No obtener ningún registro al utilizar un filtro in situ
Mostrar todos los registros después de un filtro in situ
Un peso pesado: xlFilterCopy con todos los registros en lugar de sólo registros únicos
Copiar todas las columnas
Copiar un subconjunto de columnas y reordenar
Excel en la práctica: Desactivar unos cuantos menús desplegables de Autofiltro
A continuación
12. Utilización de VBA para crear tablas dinámicas
Introducción a las tablas dinámicas
Comprensión de las versiones
Crear una tabla dinámica en Excel VBA
Definición de la caché de tabla dinámica
Creación y configuración de la tabla dinámica
Añadir campos al área de datos
Saber por qué no se puede mover ni cambiar una parte de un informe dinámico
Determinar el tamaño de una tabla dinámica acabada para convertirla en valores
Utilizar características de tabla dinámica avanzadas
Utilizar varios campos de valores
Contar el número de registros
Agrupar fechas diarias en meses, trimestres o años
Cambiar el cálculo para mostrar porcentajes
Eliminar las celdas en blanco en el área de valores
Controlar el orden con Autoordenar
Duplicar el informe para todos los productos
Filtrar un conjunto de datos
Filtrar manualmente dos o más elementos en una tabla dinámica
Utilizar filtros conceptuales
Utilizar el filtro de búsqueda
Configurar la segmentación de datos para filtrar una tabla dinámica
Configurar una escala de tiempo para filtrar una tabla dinámica en Excel 2013
Utilizar el modelo de datos en Excel 2013
Añadir ambas tablas al modelo de datos
Crear una relación entre las dos tablas
Definir la caché dinámica y crear la tabla dinámica
Añadir campos de modelo a la tabla dinámica
Añadir campos numéricos al área de valores
Poner todo junto
Utilizar otras características de tabla dinámica
Campos de datos calculados
Elementos calculados
Utilizar ShowDetail para filtrar un conjunto de registros
Cambiar la presentación desde la ficha Diseño
Configuraciones para el diseño del informe
Suprimir subtotales para múltiples campos de fila
A continuación
13. El poder de Excel
Operaciones con archivos
Listar archivos en un directorio
Importar CSV
Lectura de TXT completo en memoria y análisis
Combinar y separar libros
Separar hojas en libros
Combinar libros
Filtrar y copiar datos en hojas separadas
Exportar datos a Word
Trabajar con comentarios de celda
Listar comentarios
Redimensionar comentarios
Colocar un gráfico en un comentario
Utilidades para cautivar a sus clientes
Utilizar formato condicional para resaltar celdas seleccionadas
Resaltar celdas seleccionadas sin utilizar formato condicional
Transposición de datos personalizada
Seleccionar/deseleccionar celdas no contiguas
Técnicas para los profesionales de VBA
Módulo de clase para el estado de Excel
Detalles en la tabla dinámica
Orden de organización personalizado
Indicador de progreso de celda
Cuadro de contraseña protegido
Cambiar entre mayúsculas, minúsculas y otros
Seleccionar con SpecialCells
Menú contextual ActiveX
Aplicaciones interesantes
Cotizaciones históricas
Utilizar VBA Extensibility para añadir código a libros nuevos
A continuación
14. Funciones definidas por el usuario
Crear funciones definidas por el usuario
Compartir funciones definidas por el usuario
Funciones personalizadas de utilidad en Excel
Establecer el nombre del libro activo en una celda
Establecer el nombre y la ruta de acceso al archivo del libro activo en una celda
Comprobar si un libro está abierto
Comprobar si existe una hoja en un libro abierto
Contar el número de libros en un directorio
Recuperar una identidad de usuario
Recuperar fecha y hora de los últimos cambios
Recuperar fecha y hora permanente
Validar una dirección de correo electrónico
Sumar celdas basándose en el color interior
Contar valores únicos
Eliminar duplicados de un rango
Encontrar la primera celda con longitud distinta a cero en un rango
Sustituir múltiples caracteres
Recuperar números de texto mixto
Convertir número de semana en fecha
Separar una cadena delimitada
Ordenar y concatenar
Ordenar caracteres numéricos y alfa
Buscar una cadena dentro de texto
Invertir los contenidos de una celda
Múltiples máximos
Devolver una dirección de hipervínculo
Devolver la letra de columna de una dirección de celda
Aleatorio estático
Utilizar Select Case en una hoja
A continuación
15. Creación de gráficos
Crear gráficos en Excel 2013
Compatibilidad con versiones anteriores
Referencia al contenedor de gráficos
Entender las configuraciones globales
Especificar un tipo de gráfico integrado
Especificar la ubicación y el tamaño del gráfico
Referencia a un gráfico específico
Crear un gráfico en distintas versiones de Excel
Utilizar el método .AddChart2 en Excel 2013
Crear gráficos en Excel 20072013
Crear gráficos en Excel 20032013
Personalizar un gráfico
Especificar un título de gráfico
Aplicar formato a un gráfico rápidamente con las nuevas características de Excel 2013
Especificar un estilo de gráfico
Aplicar un color de gráfico
Filtrar un gráfico en Excel 2013
Utilizar fórmulas de celda como títulos de etiquetas de datos en Excel 2013
Utilizar SetElement para emular cambios desde el icono
Elementos de gráfico
Utilizar el método Format para microadministrar las opciones de formato
Cambiar el relleno de un objeto
Dar formato a la configuración de líneas
Crear un gráfico combinado
Creación de gráficos avanzados
Creación de auténticos gráficos OHLC
Creación de bins para gráficos de frecuencia
Creación de un gráfico de área apilada
Exportar un gráfico como archivo gráfico
Creación de gráficos dinámicos
A continuación
16. Visualización de datos y formato condicional
Introducción a la visualización de datos
Propiedades y métodos de VBA para la visualización de datos
Añadir barras de datos a un rango
Adición de escalas de color a un rango
Añadir conjuntos de iconos a un rango
Especificar un conjunto de iconos
Especificar rangos para cada icono
Utilizar trucos de visualización
Crear un conjunto de iconos para un subconjunto de un rango
Usar dos colores de barra de datos en un rango
Utilización de otros métodos de formato condicional
Dar formato a celdas que están por encima o por debajo de una media
Dar formato a las celdas de los 10 mejores o los 5 peores
Dar formato a celdas únicas o duplicadas
Dar formato a las celdas en función de su valor
Dar formato a las celdas que contienen texto
Dar formato a celdas que contienen fechas
Dar formato a celdas que contienen espacios o errores
Usar una fórmula para determinar las celdas a las que dar formato
Destacar la primera aparición de cada valor en un rango
Resaltar toda la fila de las mayores ventas
Usar la propiedad NumberFormat
A continuación
17. Creación de dashboards con minigráficos en Excel 2013
Crear minigráficos
Escala de los minigráficos
Aplicar formato a minigráficos
Usar colores del tema
Utilizar colores RGB
Aplicar formato a los elementos de un minigráfico
Aplicar formato a gráficos de ganancia o pérdida
Crear un dashboard
Observaciones acerca de los minigráficos
Crear cientos de minigráficos en un dashboard
A continuación
18. Leer y escribir en la Web
Obtener datos de la Web
Crear manualmente una consulta Web y actualizarla con VBA
Utilizar VBA para actualizar una consulta Web existente
Crear muchas consultas Web con VBA
Encontrar resultados a partir de datos recuperados
Poner todo junto
Ejemplos de cómo recopilar sitios Web mediante consultas Web
Utilizar Application.OnTime para analizar datos periódicamente
Los procedimientos programados requieren un modo "Listo"
Especificar un margen de tiempo para una actualización
Cancelar una macro programada anteriormente
Cerrar Excel cancela todas las macros programadas pendientes
Programar una macro para que se ejecute x minutos en el futuro
Programar un recordatorio verbal
Programar una macro que se ejecute cada dos minutos
Publicar datos en una página Web
Utilizar VBA para crear páginas Web personalizadas
Utilizar Excel como un sistema de gestión de contenidos
FTP desde Excel
A continuación
19. Procesamiento de archivos de texto
Importar desde archivos de texto
Importar archivos de texto con menos de 1.048.576 filas
Abrir un archivo de ancho fijo
Abrir un archivo delimitado
Leer archivos de texto de fila en fila
Ir fila por fila
Leer archivos de texto con más de 1.048.576 filas
Escribir archivos de texto
A continuación
20. Automatizar Word
Uso del enlace en tiempo de compilación para hacer referencia al objeto de Word
Uso del enlace en tiempo de ejecución para hacer referencia al objeto de Word
Uso de la palabra clave New para hacer referencia a una aplicación de Word
Uso de la función CreateObject para crear una nueva instancia de un objeto
Uso de la función GetObject para hacer referencia a una instancia de Word existente
Uso de valores constantes
Uso de la ventana Inspección para recuperar el valor real de una constante
Uso del Examinador de objetos para recuperar el valor real de una constante
Comprender los objetos de Word
Objeto Document
Crear un documento en blanco
Abrir un documento existente
Guardar cambios en un documento
Cerrar un documento abierto
Imprimir un documento
Objeto Selection
Navegación con HomeKey y EndKey
Insertar texto con TypeText
Objeto Range
Definir un rango
Dar formato a un rango
Marcadores
Controlar los campos de formulario de Word
A continuación
21. Utilización de Access como aplicación de soporte para mejorar
el acceso multiusuario a los datos
ADO frente a DAO
Herramientas ADO
Añadir un registro a la base de datos
Recuperar registros de la base de datos
Actualizar un registro existente
Eliminar registros mediante ADO
Resumir registros mediante ADO
Otras utilidades mediante ADO
Comprobar la existencia de tablas
Comprobar la existencia de un campo
Añadir una tabla sobre la marcha
Añadir un campo sobre la marcha
Ejemplos de SQL Server
A continuación
22. Técnicas avanzadas con UserForm
Utilizar la barra de herramientas UserForm en el diseño de controles en formularios de usuario
Más controles de formulario de usuario
Casillas de verificación
Barra de tabulaciones
RefEdit
Botones de alternar
Utilizar una barra de desplazamiento como deslizador para seleccionar valores
Controles y colecciones
Formularios de usuario sin modo
Utilizar hipervínculos en formularios de usuario
Añadir controles en tiempo de ejecución
Cambiar el tamaño de un formulario de usuario en el momento
Añadir un control en el momento
Cambiar el tamaño en el momento
Añadir otros controles
Añadir una imagen en el momento
Ponerlo todo junto
Añadir ayuda a los formularios de usuario
Teclas de método abreviado
Añadir texto de ayuda sobre un control
Crear el orden de tabulación
Colorear el control activo
Crear formularios transparentes
A continuación
23. API de Windows
¿Qué es la API de Windows?
Entender una declaración API
Utilizar una declaración API
Hacer declaraciones API compatibles con 32 y 64 bits
Ejemplos API
Recuperar el nombre de un equipo
Comprobar si hay un archivo de Excel abierto en una red
Recuperar información sobre la resolución de pantalla
Personalizar el cuadro de diálogo Acerca de
Deshabilitar la X para cerrar un formulario de usuario
Cronómetro
Reproducir sonidos
A continuación
24. Gestionar errores
¿Qué sucede cuando ocurre un error?
Depurar errores dentro de código de formulario de usuario es engañoso
Gestión básica de errores con la sintaxis On Error GoTo
Rutinas genéricas de gestión de error
Gestionar errores ignorándolos
Suprimir avisos de Excel
Encontrar errores a propósito
Formar a los clientes
Errores durante el desarrollo frente a Errores meses más tarde
Error 9 en tiempo de ejecución fuera del intervalo
Error 1004 en tiempo de ejecución: Error en el método 'Range' de objeto '_Global'
Los sinsabores de proteger código
Más problemas con contraseñas
Errores causados por versiones diferentes
A continuación
25. Personalización de la Cinta de opciones para ejecutar macros
Dejar paso a lo nuevo
Dónde añadir el código: Archivo y carpeta customui
Creación de una ficha y un grupo
Añadir un control a la Cinta
Acceso a la estructura del archivo
Comprensión del archivo .rels
Cambiar el nombre al archivo de Excel y abrir el libro
Utilización de imágenes en botones
Iconos de Microsoft Office
Imágenes de iconos personalizadas
Solución de errores
El atributo "nombre del atributo" del elemento "nombre del elemento" no está definido en DTD o en el esquema
Carácter de nombre completo no válido
El elemento "nombre de la etiqueta de customui" no es el esperado según el modelo de contenido del elemento primario "nombre de la etiqueta de customui"
Excel ha encontrado un problema con el contenido
Número de argumentos erróneo o asignación de propiedad no válida
Formato de archivo o extensión no válidos
No pasa nada
Otras formas de ejecutar una macro
Método abreviado del teclado
Unir una macro a un botón de comando
Unir una macro a una forma
Unir una macro a un control ActiveX
Ejecutar una macro desde un hipervínculo
A continuación
26. Creación de complementos
Características de los complementos estándar
Convertir un libro de Excel en un complemento
Utilizar Guardar como para convertir un archivo en un complemento
Utilizar el Editor de VB para convertir un archivo en un complemento
Hacer que un cliente instale el complemento
Cerrar complementos
Eliminar complementos
Utilizar un libro oculto como alternativa a un complemento
A continuación
27. Introducción a la creación de aplicaciones para Office
Cree su primera aplicación: Hello World
Añadir interactividad a la aplicación
Introducción básica a HTML
Etiquetas
Botones
CSS634
Utilizar XML para definir una aplicación
Utilizar JavaScript para añadir interactividad a la aplicación
Estructura de una función
Llaves y espacios
Punto y coma y saltos de línea
Comentarios
Variables
Cadenas
Matrices
Bucles for en JS
Cómo crear una sentencia if en JS
Cómo crear una sentencia Select..Case en JS
Cómo crear una sentencia For each..next en JS
Operadores de asignación, matemáticos y lógicos
Funciones matemáticas en JS
Escribir en el panel de tareas o en el de contenido
Cambios en JavaScript para trabajar en Aplicaciones para Office
Inicializar la aplicación
Leer y escribir en una hoja
Herramientas de desarrollo Napa Office 365
A continuación
28. Novedades y cambios en Excel 2013
Si hay cambios en la interfaz, hay cambios en VBA
La Cinta de opciones
Interfaz de documento único (SDI)
Herramienta Análisis rápido
Gráficos
Tablas dinámicas
Segmentación de datos
SmartArt
Aprender los nuevos objetos y métodos
Modo de compatibilidad
Version
Excel8CompatibilityMode
A continuación alfabético