12,99 €
Descubra cómo crear aplicaciones eficientes y profesionales con VBA en Excel. ¿Le interesa desarrollar soluciones personalizadas directamente desde Excel? Este libro le ofrece una guía práctica y accesible para introducirse en la programación con VBA, el lenguaje que potencia la automatización y mejora las capacidades de esta potente hoja de cálculo. A lo largo de siete capítulos, recorrerá desde los conceptos más básicos hasta la creación de aplicaciones completas. Aprenderá los fundamentos esenciales de programación, el uso de funciones y procedimientos, estructuras condicionales y repetitivas, así como la interacción con objetos y hojas de cálculo. Además, se adentrará en el uso de formularios para crear interfaces más intuitivas y profesionales. Dirigido a profesionales, estudiantes del área de computación e informática, así como a cualquier persona interesada en el desarrollo de aplicaciones y en explorar nuevos lenguajes de programación, este libro es una herramienta imprescindible para dar sus primeros pasos, o perfeccionar sus habilidades, en el entorno VBA de Excel.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 187
Veröffentlichungsjahr: 2025
Programación VBA con Excel: fundamentos
© Manuel Torres Remón
Derechos reservados © Empresa Editora Macro EIRL, Lima – Perú
Primera edición: Empresa Editora Macro EIRL, Lima – Perú, junio de 2024
Primera edición: MARCOMBO, S.L. 2026
© 2026 MARCOMBO, S.L. www.marcombo.com
Gran Via de les Corts Catalanes 594, 08007 Barcelona
Contacto: [email protected]
Cualquier forma de reproducción, distribución, comunicación pública o transformación de esta obra solo puede ser realizada con la autorización de sus titulares, salvo excepción prevista por la ley. Diríjase a CEDRO (Centro Español de Derechos Reprográficos, www.cedro.org) si necesita fotocopiar o escanear algún fragmento de esta obra
ISBN del libro en papel: 978-84-267-4064-9
ISBN del libro electrónico: 978-84-267-4109-7
Producción del ePub: booqlab
Manuel Torres Remón es ingeniero de Sistemas Computacionales y licenciado en Educación en la especialidad de Computación e Informática, cuenta con veinte años experiencia en consultoría y docencia en áreas de tecnología. Esta amplia maestría le ha permitido brindar formaciones en las instituciones más importantes de Lima, Perú.
Su formación académica y tecnológica se inició en el Instituto Manuel Arévalo Cáceres, la cual complementó al estudiar Ingeniería de Sistemas Computacionales en la Universidad Privada del Norte, y obtuvo su grado de licenciado a nombre de la Universidad Alas Peruanas. El aprendizaje adquirido de estas instituciones le ha proporcionado una buena formación profesional, lo que le ha permitido desempeñarse satisfactoriamente en las diversas instituciones donde trabaja.
Actualmente, se desempeña como docente de Tecnología en instituciones educativas como la Escuela Superior de Tecnología del SENATI, IEST “Manuel Arévalo Cáceres” y Cibertec. En estas instituciones imparte cursos de Tecnología, especialmente de Programación, Bases de Datos y Análisis de Sistemas.
Para cualquier duda o consulta sobre el material la puede realizar al email [email protected].
Cubierta
Título
Créditos
Manuel Torres Remón
Índice
Presentación
CAPÍTULO 1:
CONCEPTOS BÁSICOS SOBRE VBA EN EXCEL
1.1
Introducción
1.2
Aplicaciones para Visual Basic for Applications (VBA)
1.3
Comparando VB con VBA
1.4
Macros y su relación con VBA
1.5
Componentes de un proyecto en VBA
1.5.1
VBAProject
1.5.2
Microsoft Excel Objetos
1.5.3
Formularios (UserForm)
1.5.4
Módulo (Module)
1.5.5
Módulos de Clase (Class Module)
1.6
La ficha Programador de Excel
1.6.1
Activar la ficha Programador
1.6.2
Principales botones
1.7
Modos de Acceso al VBA
1.8
Personalizar la seguridad de la macro
1.9
Grabar una aplicación VBA
1.10
Descripción del editor VBA
1.11
Casos desarrollados
1.11.1
Caso desarrollado 1: macro para formato de dólares
1.11.2
Caso desarrollado 2: macro para formato de texto
CAPÍTULO 2:
FUNDAMENTOS DE PROGRAMACIÓN
2.1
Fases para la solución de un programa
2.1.1
Fase 1. Análisis del problema
2.1.2
Fase 2. Diseño del algoritmo
2.1.3
Fase 3. Codificación de un programa en VBA
2.1.4
Fase 4. Ejecución del programa en VBA
2.1.5
Fase 5. Verificación y depuración
2.2
Elementos de un programa VBA
2.2.1
Identificadores
2.2.2
Palabras reservadas
2.2.3
Comentarios
2.3
Tipos de datos
2.3.1
Enteros
2.3.2
Reales
2.3.3
Caracteres y cadenas
2.3.4
Lógicos
2.3.5
Fechas
2.3.6
Variante
2.4
Constantes
2.5
Variables
2.5.1
Asignación de valores iniciales a una variable
2.6
Operadores
2.6.1
Asignación
2.6.2
Aritméticos
2.6.3
Relacionales
2.6.4
Lógicos
2.6.5
Incremento y decremento
2.6.6
Orden de prioridad
2.6.7
Expresiones
2.7
Conversiones de tipo
2.7.1
Implícita
2.7.2
Reglas
2.7.3
Explícita
2.8
Mensajes en VBA
2.9
Introducción de valor con la función InputBox
2.10
Introducción de valor con el método InputBox
2.11
Ámbito o alcance de las variables
CAPÍTULO 3:
MÓDULOS, FUNCIONES Y SUBRUTINAS
3.1
Módulos
3.2
Operaciones sobre los módulos
3.3
Operaciones sobre el editor de módulos
3.4
Funciones definidas por el usuario
3.4.1
Formato para la implementación de una función sin parámetros
3.4.2
Formato para la implementación de una función con parámetros
3.4.3
Formato para invocar una función con o sin parámetros
3.5
Procedimientos o subrutina
3.5.1
Formato para la implementación de un procedimiento sin parámetros
3.5.2
Formato para la implementación de un procedimiento con parámetros
3.5.3
Formato para invocar un procedimiento con o sin parámetros
3.6
Casos desarrollados de funciones con y sin parámetros
3.6.1
Caso desarrollado 1: cotización del curso de inglés
3.6.2
Caso desarrollado 2: control de personal – tiempo de tardanza
3.6.3
Caso desarrollado 3: control de pago en tienda
3.6.4
Caso desarrollado 4: casa de cambio
3.6.5
Caso desarrollado 5: cuantía de las donaciones
3.7
Casos desarrollados de subrutinas con y sin parámetros
3.7.1
Caso desarrollado 1: cotización del curso de inglés
3.7.2
Caso desarrollado 2: control de personal – tiempo de tardanza
3.7.3
Caso desarrollado 3: control de pago en tienda
3.7.4
Caso desarrollado 4: casa de cambio
3.7.5
Caso desarrollado 5: cuantía de las donaciones
CAPÍTULO 4:
ESTRUCTURAS CONDICIONALES
4.1
Introducción
4.2
Implementación de una condición
4.3
Estructura If simple
4.4
Estructura If doble
4.5
Estructura If doblemente encadenada
4.6
Estructura de selección múltiple Select-Case
4.7
Casos desarrollados
4.7.1
Caso desarrollado 1: venta de ventiladores (If simple)
4.7.2
Caso desarrollado 2: pago por estacionamiento (If simple)
4.7.3
Caso desarrollado 3: venta de papeles (If doble)
4.7.4
Caso desarrollado 4: pago a empleados (If doble)
4.7.5
Caso desarrollado 5: pago de pensiones (If doblemente enlazado)
4.7.6
Caso desarrollado 6: venta de productos (If doblemente enlazado)
4.7.7
Caso desarrollado 7: pago de pensiones (Select Case)
4.7.8
Caso desarrollado 8: venta de productos (Select Case)
CAPÍTULO 5:
ESTRUCTURAS REPETITIVAS
5.1
Introducción
5.2
Contadores
5.3
Acumuladores
5.4
Estructura For…Next
5.5
Estructura While
5.6
Casos desarrollados
5.6.1
Caso desarrollado 1: listado de estudiantes (For + Contadores)
5.6.2
Caso desarrollado 2: listado de estudiantes (While + Contadores)
5.6.3
Caso desarrollado 3: listado de estudiantes (Do Until + Contadores)
5.6.4
Caso desarrollado 4: listado de estudiantes (Do Loop While + Contadores)
5.6.5
Caso desarrollado 5: listado de estudiantes (Do Loop Until + Contadores)
CAPÍTULO 6:
MODELO DE OBJETOS EN VBA
6.1
Introducción
6.2
Objeto Application
6.2.1
Propiedades
6.2.2
Métodos
6.3
El objeto WorkBook
6.3.1
Propiedades de WorkBook
6.3.2
Métodos de WorkBook
6.4
El objeto WorkSheets
6.4.1
Propiedades de WorkSheets
6.4.2
Métodos de WorkSheets
6.5
El objeto Range
6.5.1
Propiedades de Range
6.5.2
Métodos de Value
6.6
El objeto Cells
6.7
Listado de funciones VBA
6.8
Casos desarrollados
6.8.1
Caso desarrollado 1: generación de hojas de cálculo
6.8.2
Caso desarrollado 2: recorrido de un conductor
6.8.3
Caso desarrollado 3: copia de seguridad de un libro
6.8.4
Caso desarrollado 4: cronómetro
6.8.5
Caso desarrollado 5: encuestas
CAPÍTULO 7:
USERFORM Y OBJETOS VISUALES
7.1
UserForm
7.2
Administración de UserForm en VBA
7.2.1
Agregar un UserForm
7.2.2
Modificar el nombre del UserForm
7.2.3
Eliminar un UserForm
7.2.4
Ejecutar un UserForm
7.2.5
Asociar el formulario a la hoja de Excel
7.3
Tiempos en la programación
7.3.1
Tiempo de diseño
7.3.2
Tiempo de ejecución
7.3.3
Pasar del tiempo de diseño a ejecución y viceversa
7.4
Nomenclatura de nombres a objetos
7.5
Principales controles visuales y sus propiedades
7.5.1
Control UserForm
7.5.2
Control Label
7.5.3
Control TextBox
7.5.4
Control CommandButton
7.5.5
Control ListBox
7.5.6
Control ComboBox
7.5.7
Control Frame
7.5.8
Control OptionButton
7.5.9
Control CheckBox
7.5.10
Control de imagen
7.6
Agregar los controles visuales al UserForm
7.7
Ventana de código
7.8
Casos desarrollados
7.8.1
Caso desarrollado: control de registro de colaboradores
Cover
Índice
Start
El libro Programación VBA con Excel: fundamentos le ayudará a crear aplicaciones comunes usando el lenguaje VBA de Excel.
Para cumplir con dicho objetivo, el libro ha sido dividido en siete capítulos.
El primer capítulo define los conceptos básicos referentes a VBA (Visual Basic for Applications) y su integración con Excel.
El segundo capítulo hace referencia a los fundamentos de programación, por lo que es muy importante seguirlo y repasarlo varias veces, pues será la base de los demás capítulos.
El tercer capítulo se centra en la implementación de funciones y procedimientos, los cuales resultan de vital importancia en el desarrollo de aplicaciones VBA.
El cuarto capítulo hace uso de las estructuras condicionales, las cuales le permitirán desarrollar aplicaciones enfocadas a la producción.
El quinto capítulo hace uso de las estructuras repetitivas, las cuales le facilitarán generar aplicaciones mucho más enriquecidas con menos líneas de código.
El sexto capítulo explica el uso de los objetos VBA y cómo estos se pueden asociar a la hoja de cálculo integrando las estructuras condicionales y repetitivas.
Finalmente, en el séptimo capítulo se hace referencia al uso de los formularios de manera básica, estos le permitirán tener un mejor enfoque al desarrollar aplicaciones VBA profesionales.
En la actualidad, el uso de la tecnología permite solucionar situaciones simples y complejas. Por lo tanto, es necesario para cualquier empresa contar con personal capacitado en el uso de herramientas que manejen la información, puesto que la que se produce en una organización, ya sea pequeña o grande, es de suma importancia para esta, y por ello debe ser gestionada de la mejor manera. Este manejo de información genera en los colaboradores el aprendizaje de diferentes habilidades, como la búsqueda de métodos para mejorar el uso de la información, la mejora del razonamiento ante nuevos problemas, el planteamiento de nuevos conflictos, la solución ante cuestiones cotidianas y la toma de decisiones ante diferentes situaciones. Bien es cierto que esto siempre se ha presentado, incluso antes de la era informática; sin embargo, la tecnología incrementa la productividad y eficiencia en las tareas siempre y cuando se sepa usarla.
En este sentido, Excel es la solución que las empresas tanto buscan, puesto que tiene muchas características inteligentes: recolección, almacenamiento, organización y análisis de datos. Además, cuenta con la capacidad de realizar cálculos simples y complejos; ofrecer herramientas precisas y dinámicas con el alcance de realizar gráficas y obtener estadísticas complejas. Asimismo, es un programa hecho a medida, es decir, solo se pueden realizar acciones permitidas por el creador de Excel. Sin embargo, se puede aprovechar aún más esta aplicación, y a un nivel más avanzado usando programación VBA bajo el entorno de Excel.
Finalmente, se debe considerar que para aprender a programar VBA no se necesita ser un experto en programación. De hecho, el reto de crear rutinas de código permite desarrollar la capacidad de solucionar problemas a nivel profesional. Por lo tanto, este material está enfocado a aquellas personas que deseen mejorar sus conocimientos de Excel e ir más allá haciendo uso de la programación VBA.
La sigla VBA hace referencia a Visual Basic for Applications, el cual es el entorno de desarrollo considerado como lenguaje de macros que permite crear aplicaciones para Windows dentro de un entorno como Office y otras plataformas de ingeniería.
Figura 1. Logo de Visual Basic for Applications (VBA)
Fuente. https://masterofficevba.com/vba-coding-constructs/best-practices-for-excel-vba-code/
Asimismo, es relevante mencionar que VBA no existe como plataforma independiente, ya que se encuentra integrada dentro del paquete de Office, es decir, se podrán realizar aplicaciones VBA para Excel, Word, PowerPoint, etc. Estas tendrán el resultado esperado por la aplicación de origen. Entonces, se podrían gestionar los datos de Excel y controlar la información de los documentos de Word mediante VBA.
Finalmente, se concluye afirmando que VBA permite automatizar las tareas que se realicen en cualquier aplicación de Office, lo que convierte un escenario complejo en una tarea dinámica e interactiva.
Visual Basic (VB) es un lenguaje de programación desarrollado por Microsoft. Es considerado un dialecto de Basic, el cual es un lenguaje de programación de alto nivel, por lo que puede ser desarrollado de manera sencilla y entendible. Además, cuenta con un entorno de desarrollo integrado que permite crear un ambiente de programación amigable y sencillo. La principal característica es su capacidad de crear aplicaciones independientes de su entorno, en otras palabras, una aplicación desarrollada en Visual Basic puede ser ejecutada como un archivo independiente, el cual puede generar un archivo ejecutable.
Debido a que VBA es considerado como un lenguaje de programación residente de Microsoft Office, o sea, para ejecutar una aplicación VBA se necesita un programa de acogida (Word, Excel, PowerPoint o Access). Entonces, se abarcará la acogida en Excel por ser una de las aplicaciones más usadas por los profesionales.
Finalmente, se debe considerar que para ejecutar las aplicaciones VBA siempre se necesitará realizarlo dentro de Excel. Esto con la finalidad de que el resultado pueda mostrarse directamente en la aplicación o en una hoja de Excel, y no fuera de su entorno. Tanto VB como VBA generan aplicaciones similares en apariencia, pero usted debe tener claro que normalmente el resultado de una aplicación VBA siempre será sobre Excel, Word o PowerPoint.
Figura 2. Formulario de registro de información con VBA
El formulario anterior fue diseñado exclusivamente con VBA bajo el entorno de Excel. La idea es registrar información de los clientes y enviarla como registro a la hoja de Excel, o también podría recogerla desde la hoja de Excel. Es aquí donde se trabaja bajo la demanda de cómo usted quiere controlar la información.
Figura 3. Listado de información de clientes en Excel
Hay que suponer que, través de un formulario VBA, se registra la información de los clientes y estos son enviados a la hoja de cálculo de Excel. Pero cómo llega el número de registro del cliente o la fecha de registro a Excel si en el formulario no se encuentran referenciados. En este punto, se usa el trabajo de la programación VBA: primero hay que calcular cuántos clientes se encuentran registrados para determinar el número del nuevo cliente. Luego, establecer las fechas, que es mucho más sencillo de lo que parece, puesto que en VBA existen funciones para obtenerlas. Esto y mucho más lo veremos en este manual.
Una macro en Excel permite automatizar tareas repetitivas, de modo que el usuario grabe las tareas cotidianas y las ejecute cuando crea conveniente. De igual forma, se debe tener en cuenta que una macro para VBA es un conjunto de instrucciones llamado código fuente que trabajan en segundo plano de Excel. Finalmente, se puede afirmar que una macro puede ser manipulada o adaptada a las necesidades del usuario con un poco de sentido común y conocimiento básico de las instrucciones.
Se observa que desde la hoja de Excel se invoca a un formulario de registro de la lista de personal, el cual permitirá obtener información del empleado, que luego será enviado al listado en Excel por medio del botón Grabar información.
Un proyecto es considerado como una planificación que consiste en un conjunto de actividades que se encuentran interrelacionadas con algún propósito, es decir, con el fin de alcanzar resultados específicos en el marco de las limitaciones impuestas por la aplicación, en la cual se está ejecutando el proyecto para el caso de Excel.
Representa a un proyecto VBA dentro de Excel, tal como se observa en la siguiente imagen. Asimismo, se debe tener en cuenta que un libro de Excel contiene un conjunto de hojas que tienen un mismo objetivo; por lo tanto, el proyecto VBA y el libro de Excel representan lo mismo, solo que en diferentes entornos. Cabe agregar que un proyecto en VBA puede contener objetos como hojas, formularios, módulos y módulos de clase.
Se consideran objetos a todas las hojas que puede incluir Excel, incluso al mismo libro. Se debe tener en cuenta que los objetos son elementos tomados de la realidad, es decir, tienen características propias y estas pueden ser modificadas desde la ventana de propiedades.
Es considerado como un objeto del proyecto VBA, el cual permite generar prototipos de soluciones gráficas, o sea, es una ventana que representa un remedio a un determinado problema. Hay que tener ciertos criterios al diseñar formularios en el proyecto VBA. Por ejemplo:
a. Considerar que el diseño del formulario debe ser enfocado al usuario final, el cual probablemente no tenga los conocimientos que usted tiene.
b. Considerar que el diseño debe ser lo más entendible posible y debe enfocarse a la simplicidad y comodidad del usuario final.
c. Tener cuidado con los colores que use en el diseño, puesto que cada empresa tiene su propia política de uso de colores.
d. Considerar que no debe saturar de elementos dentro del formulario, por eso, el objetivo es usar la técnica japonesa más es menos.
A continuación, se verá un UserForm en su forma inicial:
El formulario inicial siempre aparece con una rejilla que permite administrar los elementos que componen el formulario, es decir, todo elemento que se le agrega tendrá que acomodarse a las rejillas. Sin embargo, al ejecutar el formulario, el aspecto es totalmente distinto, tal como se visualiza en la siguiente imagen:
Es un espacio donde se escribe el código VBA que afectará directamente a las hojas de Excel. Un proyecto VBA puede tener un conjunto de módulos donde se pueden escribir diferentes macros o funciones de VBA. Un proyecto VBA podría tener mucho código enfocado a diferentes procesos y, conforme avanza en el tiempo, podría aumentar dicho código y, en consecuencia, generaría un desorden en el proyecto que es típico para los programadores. Es aquí donde el concepto de módulo entra con fuerza, pues ayudará a la organización de los códigos separando la lógica de solución en bloques de funciones y subrutinas.
Por ejemplo, si se tienen los siguientes procesos:
a. Realizar cálculos estadísticos.
b. Realizar cálculos contables.
c. Generar un gráfico a partir de información estadística.
d. Generar un gráfico dinámico.
e. Imprimir indicadores.
f. Imprimir informes de Excel.
Se podrían agrupar en los siguientes módulos:
Dentro del proyecto VBA también se pueden agregar módulos de clases, los cuales contienen la lógica de un determinado proceso, que pueden ser usados en módulos o formularios del proyecto. Si hay un código que se va a usar en muchos módulos o formularios, estos no se están copiando y pegando; sino que se invocarán generando menos espacio de código y aumentando la velocidad de los procesos.
Los módulos de clase trabajan con el objeto Class, el cual contiene un código que permite recibir, enviar y gestionar la información mediante una instancia que se puede realizar desde cualquier otro objeto, como módulos, formularios u otro módulo de clase.
Esta ficha es considerada como trabajo avanzado en Excel, por eso inicialmente no aparece. Por tanto, es en ese momento en que se debe activar, ya que contiene controles de acceso al entorno VBA, así como al diseño de formularios en una hoja de Excel y principalmente el control de las macros.
Es importante entender que la ficha Programador presenta herramientas vitales para el desarrollo de aplicaciones con VBA. Además, se debe considerar que todas las versiones de Excel tienen una forma distinta de activar la ficha Programador. Para Excel, realice los siguientes pasos para activarla:
1. Haga clic en el botón Archivo de la cinta de opciones de Excel.
2. De la lista de opciones mostrada en el lado izquierdo de la ventana, seleccione Opciones.
3. Le aparecerá la ventana de Opciones de Excel, aquí deberá seleccionar Personalizarcinta de opciones.
4. Finalmente, debe activar el check en Programador y presionar el botón Aceptar. Se debe visualizar la ficha Programador después de la ficha Vista.
Para una buena gestión del código VBA en Excel se definirán los principales botones de la ficha Programador:
Existen diversas formas de acceder al editor VBA, para esto se verán tres maneras de realizarlo:
a.Primera forma:ficha Programador > Visual Basic.
b.Segunda forma: combinación de teclas ALT+F11.
c.Tercera forma:ficha Programador > Ver código.
En cualquiera de los accesos se debe presentar la siguiente ventana:
Cuando se desarrolla una aplicación con VBA, Excel asume un tipo de archivo distinto al estándar, el cual tiene por extensión .xlsm, lo que indica que es un archivo de tipo macro —de ahí proviene la letra m—. Por otro lado, cuando se intenta abrir este tipo de archivo aparece un mensaje de banda amarilla que indica ADVERTENCIA DE SEGURIDAD, Las macros se han deshabilitado y un botón de Habilitar contenido, como se muestra a continuación:
Esto se repetirá tantas veces como se abra un documento que contenga el código VBA, por lo tanto, será necesario configurar de manera adecuada la seguridad de la macro. Debe realizar los siguientes pasos para habilitar las macros en Excel:
1. Seleccione la ficha Programador.
2. Presione el botón Seguridad de macros, se debe mostrar la siguiente ventana:
3. Seleccione la opción Habilitar todas las macros de VBA, con esta opción ya no aparecerá la advertencia de seguridad de color amarillo.
4. Active el checkConfiar en el acceso al modelo de objetos de proyectos de VBA, con esta opción se podrán usar los objetos VBA como formularios, clases y otros elementos que se compone.
Antes de entrar completamente al desarrollo de aplicaciones con VBA debe tener en cuenta cómo se guarda un documento de Excel, el cual contiene VBA, y considerar que existen diferentes formas de realizar esta actividad. Para este caso seleccionará solo dos opciones:
A. Opción 1: desde Excel
1. Una vez diseñada la aplicación en Excel con VBA.
2. Presione F12 o también Archivo > Guardar como.
3. Asigne un nombre adecuado al archivo.
4. Seleccione el tipo de archivo Libro de Excel habilitado para macros (*.xlsm).
5. Seleccione la ubicación de su archivo y finalmente presione en Guardar.
B. Opción 2: desde el entorno VBA
Tenga en cuenta que la ventana de diálogo de Guardar es exactamente igual en ambas situaciones. Realice los siguientes pasos:
1. Ficha Programador.
2. Seleccione Visual Basic.
3. Seleccione Archivo > Guardar libro…
4. Asigne un nombre adecuado al archivo.
5. Seleccione el tipo de archivo Libro de Excel habilitado para macros (*.xlsm).
6. Seleccione la ubicación de su archivo y finalmente presione en Guardar.
