Saltar al contenido principal

VBA Excel: Cómo empezar y facilitar tu trabajo

Aprende a utilizar eficazmente VBA en Excel para automatizar tareas, crear macros y mejorar tus habilidades de procesamiento de datos con ejemplos prácticos y las mejores prácticas.
Actualizado 16 ene 2025  · 10 min de lectura

Visual Basic para Aplicaciones (VBA) en Excel es un lenguaje que permite a los usuarios automatizar tareas repetitivas y mejorar la funcionalidad de Excel mucho más allá de sus características estándar. Así que, tanto si eres un principiante que quiere aumentar la productividad como si eres un usuario avanzado que busca agilizar flujos de trabajo complejos, VBA está aquí para facilitarte las cosas.

En esta guía, te explicaré conceptos básicos y avanzados de VBA. Sin embargo, si eres nuevo en Excel, empieza con Fundamentos de Excel para construir una base sólida antes de avanzar a VBA.

¿Qué es VBA en Excel?

Visual Basic para Aplicaciones (VBA) es un lenguaje de programación utilizado para automatizar tareas y mejorar la funcionalidad de las aplicaciones de Microsoft Office. Puedes utilizarlo con Excel, Word, Access y otros programas de Office, aunque probablemente su uso más extendido sea para crear macros personalizadas en Excel, de lo que nos ocuparemos.

Personalmente, la primera vez que utilicé VBA fue para automatizar un informe semanal que antes tardaba horas en compilarse manualmente. Con unas pocas líneas de código, reduje el proceso a un solo clic de botón y ahorré un montón de horas. A partir de entonces, sé que invertir algo de tiempo en dominarlo me reportaría enormes beneficios en términos de productividad.

Avanza en tu carrera con Excel

Adquiere los conocimientos necesarios para sacar el máximo partido a Excel, sin necesidad de experiencia.

Empieza hoy gratis

Términos importantes de VBA en Excel

Antes de trabajar con VBA, debes comprender sus términos y conceptos clave. Así pues, aquí tienes una lista de algunos de los términos más utilizados que encontrarás cuando empieces a automatizar tareas y a crear soluciones personalizadas en Excel.

  • Módulos son los contenedores del código VBA, donde se almacenan los procedimientos y las funciones.

  • Objetos son los bloques de construcción de VBA. Representan elementos como libros de trabajo, hojas de cálculo y celdas.

  • Procedimientos son los bloques de código que realizan tareas específicas, a menudo clasificadas como subprocedimientos o funciones.

  • Sentencias son las instrucciones dentro de un procedimiento que indican a Excel (o Word o Access) qué acciones debe realizar.

  • Variables almacenan datos que pueden utilizarse y manipularse dentro de tu código.

  • Los operadores lógicos comparan valores y toman decisiones en función de los resultados. Incluyen operadores como And,Or y Not.

Primeros pasos con VBA en Excel

Para empezar a utilizar VBA, tendrás que acceder al editor VBA. Aquí es donde escribirás y editarás tu código VBA. Veamos cómo conseguirlo:

Activar la pestaña Desarrollador 

El primer paso es activar la pestaña Desarrollador, que suele estar oculta en la cinta de opciones. Para ello:

  • Haz clic con el botón derecho del ratón en cualquier lugar de la cinta de opciones

Cinta en Excel

Cinta de opciones en Excel. Imagen del autor.

  • Selecciona la opción Personalizar la cinta de opciones... opción.

Personalizar la cinta de opciones en Excel

Personaliza la cinta de opciones para activar la pestaña Desarrollador. Imagen del autor.

  • Aparecerá un cuadro de diálogo. Marca laopción Developer y pulsa OK.

Seleccionar la opción Revelar en un cuadro de diálogo y pulsar OK en Excel

Seleccionando la opción Desarrollador. Imagen del autor.

Ahora puedes ver un Desarrollador en la parte superior de la cinta de opciones.

Pestaña Desarrollador en Excel

La pestaña Desarrollador está activada en la cinta de opciones. Imagen del autor.

Abrir el editor VBA 

Una vez activada la pestañaDesarrollador, podrás acceder al editor VBA. Para ello, haz clic en la pestaña Desarrollador y selecciona Visual Basic entre las opciones. También puedes utilizar el atajo de teclado ALT + F11 para abrir directamente el editor VBA.

Interfaz del editor VBA en Excel

VBA editor. Imagen del autor.

El editor VBA puede parecer inicialmente intimidante, pero es fácil de usar. Entendamos sus pocas áreas clave:

  • Panel de código es donde escribes y editas tu código VBA.
  • Explorador de proyectos muestra una vista jerárquica de los proyectos y módulos de tu libro de trabajo.
  • Ventana Propiedades Muestra las propiedades de los objetos seleccionados para personalizar su configuración.

Interfaz de VBA en Excel

Interfaz VBA en Excel. Imagen del autor.

Escribir código VBA en Excel

Ahora que ya estás familiarizado con el editor VBA, es hora de empezar a escribir algo de código. El código VBA consta de diferentes partes, como subprocedimientos y funciones. Son conjuntos de instrucciones que indican a Excel lo que debe hacer. No te preocupes si nunca has programado antes: te lo explicaré paso a paso. 

Escribir una subrutina VBA

Antes de escribir una macro, tienes que crear un entorno de macro. Para ello, sigue estos pasos:

  • Dentro del editor VBA, selecciona Insertar > Módulo. Se creará un nuevo módulo con el nombre por defecto Módulo1.

Insertar un nuevo módulo en VBA

Selecciona Módulo en la pestaña Insertar. Imagen del autor.

  • Puedes cambiar el nombre del módulo en las Propiedades propiedades.

Cambia el nombre del módulo recién creado en VBA en Excel

Cambia el nombre del módulo VBA. Imagen del autor.

Ahora que ya sabes cómo configurar el entorno para crear una macro, vamos a crear juntos nuestra primera macro para mostrar un mensaje. Por defecto, la ventana de código se abre cuando se crea el módulo. Si no funciona en tu caso, haz clic con el botón derecho del ratón en el módulo que has creado y haz clic en Ver código. Aparecerá la ventana de código donde puedes escribir tus macros.

Aquí estoy creando una macro para mostrar el mensaje Hello, World!. Para ello, escribo el siguiente código en el panel de código:

Sub ShowMessage()
    MsgBox "Hello, World!"
End Sub 

Toma:

  • Sub es la palabra clave de una subrutina, que es un bloque de código que realiza una tarea específica. En VBA, una subrutina no devuelve un valor.

  • MostrarMensaje es el nombre de la subrutina. Puedes ponerle el nombre que quieras, siempre que siga las convenciones de nomenclatura de VBA (por ejemplo, sin espacios, no puede empezar por un número).

  • () se utilizan aquí para definir los parámetros de la subrutina. Como no se necesitan parámetros para esta tarea, los paréntesis están vacíos.

  • MsgBox es una función VBA integrada que muestra un cuadro de mensaje en la pantalla.

  • End Sub La declaración indica el final de la subrutina. Todo lo que hay entre Sub y End Sub es el código que se ejecutará cuando se llame a la subrutina.

  • Las cadenas de texto en VBA van entre comillas dobles. Aquí queremos que la cadena Hello, World! aparezca dentro del cuadro de mensaje.

Escribir una macro VBA en un panel de código en Excel

Escribir una macro. Imagen del autor.

  • Ahora, es el momento de ejecutar el código. Utiliza el atajo de teclado F5. Si quieres hacerlo manualmente, ve a lapestaña Desarrollador y selecciona Macros. Pulsa Corre.

Selecciona la opción Macros en la pestaña desarrollador y ejecuta la macro en Excel

Selecciona la opción Macros en la pestaña Desarrollador. Imagen del autor.

Ahora puedes ver aparecer el cuadro de mensaje en tu hoja de Excel.

cuadro de mensaje en Excel

Buzón de mensajes. Imagen del autor.

Comprender los objetos en VBA 

En VBA, los objetos te permiten controlar distintos elementos dentro de Excel y automatizar tareas para conseguir flujos de trabajo más eficaces. Hay tres objetos clave: Libro de Trabajo, Hoja de Trabajo y Rango. Comprendamos cada una de ellas con un ejemplo práctico.

El objetoLibro de trabajo es cualquier archivo de Excel que esté abierto en ese momento. Nos permite realizar acciones como añadir nuevas hojas o guardar las hojas existentes dentro del libro de trabajo. En este ejemplo, quiero añadir una hoja a la hoja abierta actualmente y luego guardarla. Al principio, tenía Sheet1. Para añadir otra hoja, escribo el siguiente código:

Sub AddSheetAndSaveWorkbook()
    ' Adds a new worksheet to the active workbook
   ActiveWorkbook.Sheets.Add
    
    ' Saves the workbook
    ActiveWorkbook.Save
End Sub

Este código funciona exactamente igual que el anterior, pero aquí he añadido comentarios. Los comentarios empiezan por ' y no afectan a tu código. Sólo los añadimos para que el código sea más claro. 

Puedes ver que ahora se ha creado otra hoja, Sheet2.

Añadir y guardar una nueva hoja en la hoja existente utilizando VBA en Excel

Añade y guarda una nueva hoja en la hoja existente utilizando VBA. Imagen del autor.

El objeto Hoja de cálculo representa la hoja actualmente activa en Excel. Con ella puedes modificar o manipular la hoja activa. Por ejemplo, quiero cambiar el nombre de la hoja activa. Para ello, introduzco el siguiente código:

Sub RenameActiveSheet()
    ' Renames the active sheet to "Sales Report".
    ActiveSheet.Name = "Sales Report"
End Sub

Código para cambiar el nombre de la hoja de cálculo utilizando VBA en Excel

Cambiar el nombre de la hoja de cálculo utilizando VBA. Imagen del autor.

Ahora, Sheet1 ha pasado a llamarse Sales Report.

Cambiar el nombre de la hoja de cálculo utilizando VBA en Excel

Cambiar el nombre de la hoja de cálculo de Excel utilizando VBA. Imagen del autor.

El objeto Rango se refiere a un grupo concreto de celdas o a una sola celda que podemos manejar según nuestras necesidades.  En el siguiente ejemplo, selecciono un rango de celdas de F3 a I3 y cambio el color de fondo. Para ello, escribo el siguiente código:

Sub FormatRange()
    ' Selects the range from A1 to C6
    Range("F3:I3"). Select
    
    ' Changes the background color of the selected range to Green
    Selection.Interior.Color = RGB(101, 255, 143)
End Sub

Código para cambiar el color del rango seleccionado utilizando VBA en Excel

Seleccionar rango y cambiar el color utilizando VBA. Imagen del autor.

Puedes ver la diferencia en los resultados. 

Resultados de cambiar el color del rango seleccionado utilizando VBA en Excel

Cambiar el color utilizando VBA en Excel. Imagen del autor.

Crear variables en VBA

Al igual que otros lenguajes de programación, las variables de VBA almacenan dos tipos de datos principales: números y texto. Para utilizarlas en VBA, primero debes declarar la variable utilizando la palabra clave según tus preferencias, seguida del nombre de la variable y el tipo de datos.

Keyword variableName As DataType

Toma: 

  • Keyword puede ser Dim, Static, Public, y Private.

  • variableName se refiere al nombre elegido para esta variable (sin espacios).

  • As se utiliza para declarar el tipo de variable.

  • DataType se refiere al tipo de variable, como Integer.

Al trabajar con variables, también tienes que respetar algunas reglas:

  • La longitud debe ser inferior a 255 caracteres.
  • No se permiten espacios entre caracteres.
  • El nombre no puede empezar por un número.
  • No uses puntos en el nombre.

Tipo de datos numéricos

Los tipos de datos numéricos en VBA se utilizan para almacenar valores numéricos.

Tipo de datos Almacenado Rango de valores
Byte 1 Byte Almacena números enteros de 0 a 255
Entero 2 Byte Almacena números enteros dentro del intervalo de -32.768 a 32.767
Largo 4 Bytes Almacena números enteros mayores, que van de -2.147.483.648 a 2.147.483.647
Individual 4 Bytes Almacena números decimales con una sola precisión
Doble 8 Bytes Almacena números decimales con doble precisión
Moneda 8 Bytes Almacena números con decimales fijos
Variante (texto) Longitud del texto + 22 bytes De 0 a 2.000 millones de caracteres

Tipo de dato no numérico

Los tipos de datos no numéricos en VBA almacenan valores que no son números.

Tipo de datos Almacenado Rango de valores
Cadena Longitud de la cadena Almacena texto
Fecha 8 Bytes Almacena la fecha y la hora
Booleano 2 Bytes Tiendas Verdadero o Falso
Variante 16 Bytes Almacena cualquier tipo de dato y se utiliza cuando el tipo no se conoce de antemano

Automatizar tareas con macros VBA de Excel

Las macros son esencialmente una serie de instrucciones creadas en VBA para realizar tareas repetitivas. Con una macro, puedes grabar una serie de acciones, como formatear celdas, copiar datos o realizar cálculos. Después de guardar la macro, podemos volver a aplicar estas acciones con un solo clic. Esto ahorra tiempo, especialmente cuando se trabaja con grandes conjuntos de datos o tareas.

Por ejemplo, si sueles dar el mismo formato a tus informes, puedes grabar una macro que aplique todos los pasos de formato necesarios en lugar de hacerlo manualmente cada vez. Más tarde, puedes ejecutar esta macro para formatear nuevos datos. Hemos mostrado un par de ejemplos básicos, pero imagina hacer más acciones pequeñas con un solo clic. Aunque no tengas experiencia en codificación, puedes automatizar las tareas rutinarias para agilizar el flujo de trabajo y reducir las posibilidades de error que pueden producirse al realizar acciones repetitivas manualmente.

Grabar una macro de Excel 

Veamos cómo puedes grabar una macro para hacer algunos cambios de formato:

  • Ir a la página Desarrollador ficha > Grabar macro .
  • Aparecerá un cuadro de diálogo. Dale a tu macro un nombre como hice yo FormatoCélulas.
  • Asigna un atajo de teclado si lo deseas. Le asigné Ctrl+S.
  • Haz clic en OK para iniciar la grabación.

Ahora que la macro empieza a grabar, realiza las acciones que quieras automatizar. Para este ejemplo, estoy registrando algunos cambios de formato en una tabla sencilla. Cuando lo hayas completado, vuelve a la pestaña Desarrollador y haz clic en el botónDetener grabación. A continuación, puedes ver la macro en acción.

Grabar una macro utilizando VBA en Excel. Gif de Autor.

Ahora, si tienes otro conjunto de datos en otra hoja y quieres el mismo formato también en ese conjunto de datos, en lugar de formatearlo todo de nuevo, pulsa la tecla de acceso directo que has creado (en mi caso, es Ctrl+S). Si no, ve a hoja2 > pestaña Desarrollador > Macros > Ejecutar para hacerlo manualmente.

Utilizando la macro de Excel. Gif de Autor.

Editar macros de Excel 

Después de grabar una macro, puedes incluso ajustar o personalizar sus acciones. He aquí cómo: 

  • Ir a la página Desarrollador y haz clic en Conceptos básicos visuales.
  • Aparecerá el editor VBA. Ahora, en elExplorador de Proyectos de , busca el libro de trabajo donde está almacenada tu macro .
  • Despliega la carpetaMódulos y haz doble clic en el módulo que contiene tu macro. La ventana de código mostrará el código VBA de tu macro grabada.

Ilustración del código realizado al grabar una macro en Excel

Código de la macro grabada en Excel. Imagen del autor.

Cada línea de código muestra la acción que realizaste durante la grabación. Desde aquí, puedes modificar el código grabado para personalizar la macro según tu elección. En mi caso, puse Selection.Font.Bold en False para eliminar la negrita. Una vez realizadas las ediciones, guarda los cambios haciendo clic en el botón Guardar o pulsa Ctrl+Sy Ejecuta el código para aplicar los cambios. Personalizar la macro en VBA en Excel

Personalizar la macro VBA de Excel. Imagen del autor.

Después de ejecutar tu macro, puedes ver los resultados: las columnas que antes estaban en negrita ya no lo están. 

Resultados de la macro editada manualmente en VBA Excel

Utilizar una macro en Excel. Imagen del autor

Escribir macros personalizadas de Excel 

Puede haber algunas tareas avanzadas en las que no puedas grabar una macro. En estos casos, tienes que escribir una macro desde cero. Por ejemplo, quiero copiar los datos de una hoja de cálculo a otra. Así es como escribo una macro personalizada:

  • Abre manualmente el editor VBA en la primera hoja o pulsa Alt+F11.
  • Inserta un módulo nuevo.
  • Escribe el siguiente código en el panel de código.
Sub CopyData()
Sheets("Sheet1").Range("B1:E21").Copy Destination:=Sheets("Sheet2").Range("B1")
End Sub
  • Guarda la macro y pulsa Ejecuta.

Ahora puedes ver que los datos de la Hoja1 se han se han copiado en la Hoja2.

Guía paso a paso para escribir una macro personalizada en VBA en Excel

Escribir una macro personalizada utilizando VBA. Gif de Autor.

Reflexiones finales 

Desde automatizar tareas repetitivas hasta crear macros complejas, VBA abre un mundo de posibilidades dentro de Excel. A medida que te sientas más cómodo con los conceptos básicos, practica escribiendo código y explora gradualmente las funciones más avanzadas de VBA. Recuerda que la clave para dominar VBA -o cualquier lenguaje de programación- es la práctica constante y la voluntad de experimentar. Para mejorar aún más tus habilidades, considera la posibilidad de explorar estos recursos adicionales. Los cursos Análisis de datos en Excel y Aprende Excel son excelentes para aprender más sobre las funciones de Excel. 

Si quieres ampliar tus conocimientos de codificación más allá de VBA, la guía Cómo ser programador en 2024 te ofrece una hoja de ruta. Compruébalo si te interesa este campo. Además, el curso Modelización Financiera en Excel es perfecto para quienes estén interesados en crear modelos financieros detallados.

Aprende los fundamentos de Excel

Adquiere habilidades para utilizar Excel de forma eficaz; no se requiere experiencia.

Laiba Siddiqui's photo
Author
Laiba Siddiqui
LinkedIn
Twitter

Soy una estratega de contenidos a la que le encanta simplificar temas complejos. He ayudado a empresas como Splunk, Hackernoon y Tiiny Host a crear contenidos atractivos e informativos para su público.

Preguntas frecuentes sobre VBA en Excel

¿Cuál es la finalidad de la declaración explícita en VBA?

Explícito ayuda a garantizar que todas las variables se declaran explícitamente antes de su uso, reduciendo los errores y haciendo que tu código sea más fácil de mantener.

¿Cómo protejo mi código VBA con una contraseña?

Puedes proteger tu código VBA y endoal editor VBA > Herramientas > Propiedades de VBAProyecto > pestaña Protección. Comprueba el Bloquear proyecto para visualización y establece una contraseña.

¿Cuál es la diferencia entre ActiveWorkbook y ThisWorkbook en VBA?

ActiveWorkbook se refiere al libro de trabajo actualmente enfocado, que puede no contener el código VBA. Thisworkbook se refiere al libro de trabajo donde reside el código VBA, independientemente del libro de trabajo activo.

¿Qué son las UserForms en VBA y cómo se pueden utilizar?

UserForms son cuadros de diálogo personalizados en VBA que permiten a los usuarios introducir datos. Pueden utilizarse para crear formularios interactivos para la introducción de datos, la selección o la interacción del usuario que requiera una interfaz personalizada.

Temas

Aprende Excel y VBA con DataCamp

Certificación disponible

curso

Modelización financiera en Excel

3 hr
11.4K
Aprende sobre modelización financiera en Excel, incluyendo flujo de caja, análisis de escenarios, valor temporal y presupuesto de capital.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow