El editor de VBA es la herramienta que trae Excel para escribir pequeñas instrucciones que automatizan tareas repetitivas. Con él puedes recorrer una hoja, sumar importes, borrar duplicados o mostrar mensajes sin hacerlo a mano cada vez. En este tutorial vas a abrir el editor, escribir tu primera macro sobre una hoja de gastos reales, ejecutarla con F5 y guardar el libro en el formato correcto (.xlsm) para no perderla. Funciona en Excel 2007, 2010, 2013, 2016, 2019, 2021, 2024 y Microsoft 365 para Windows; en Excel para la web no se ejecuta ni se edita VBA.
Qué es el editor de VBA y para qué te sirve en Excel
Imagina un libro de gastos mensuales: cada mes rellenas la fecha, el importe y el concepto, y al final necesitas el total, comprobar que no haya duplicados y dejar la hoja lista para el mes siguiente. Hacerlo a mano cada vez es trabajo manual, y el editor de VBA es la herramienta de Excel donde se escribe el código que lo hace por ti.
Las siglas VBA vienen de Visual Basic for Applications, un lenguaje que Microsoft integra en las plantillas de Office. El editor es un entorno con su propia ventana, su barra de menús y tres paneles: a la izquierda el árbol del libro (el Explorador de proyectos), en medio la ventana de Código donde se escribe y abajo la ventana Inmediato, una consola para probar líneas sueltas.
La ventaja de escribir estas instrucciones tú mismo es que el código se queda en el libro y lo abres cuando quieras. La ventaja de la grabadora es que te genera el código mientras trabajas, y lo que se genera se puede leer y modificar después para entender cómo se llama cada cosa.
Dónde está el editor y cómo abrirlo
El editor de VBA no se abre con un clic en una pestaña normal: está escondido hasta que activas la pestaña Programador (Developer, en inglés). En la cinta de opciones por defecto solo ves Inicio, Insertar, Disposición de página, Fórmulas, Datos, Revisar, Vista y Ayuda.
Activar la pestaña Programador por primera vez
- Pulsa Alt+F para abrir el backstage y luego
Opara entrar en Opciones de Excel. También vale Archivo > Opciones. - En la ventana que se abre, en la columna de la izquierda, elige Personalizar cinta de opciones.
- En la columna derecha, bajo Pestañas principales, marca la casilla Programador.
- Pulsa Aceptar.
Después de aceptar, la pestaña Programador aparece al final de la cinta de opciones, a la derecha de Vista.
Abrir el editor con Alt+F11 y volver a Excel
- Con Excel abierto en cualquier hoja, pulsa Alt+F11.
- Se abre la ventana del editor de VBA; el panel de la izquierda muestra el libro donde estabas.
- Para volver al trabajo o a la hoja, pulsa otra vez Alt+F11 o haz clic en el icono de Excel arriba a la izquierda del editor.
El atajo Alt+F11 funciona aunque la pestaña Programador esté oculta, porque es un acceso directo interno de Windows.
Las partes del editor: Proyecto, Código e Inmediato
Cuando se abre el editor por primera vez ves tres zonas. Arriba, la barra de menús (Archivo, Edición, Insertar, Depurar, Ejecutar, Herramientas, Ventana, Ayuda) y debajo la barra de herramientas con los botones Ejecutar, Detener, Restablecer y demás.
A la izquierda está el Explorador de proyectos, una vista jerárquica del libro donde estás. Bajo el nombre VBAProject verás dos carpetas: Microsoft Excel Objetos, que son las hojas (Hoja1, Hoja2…) y un objeto llamado ThisWorkbook que representa el archivo, y Módulos, que aparecen cuando insertas uno nuevo.
En el centro está la ventana de Código, donde se escribe el código. Cada módulo, hoja o ThisWorkbook tiene la suya y se abre con doble clic en el árbol de la izquierda.
Abajo está la ventana Inmediato, una consola donde escribir una línea y ver su resultado sin necesidad de ejecutar una macro. Si no la ves, ábrela con Ver > Ventana Inmediato o el atajo Ctrl+G.
El Explorador de proyectos y la carpeta Módulos
El Explorador de proyectos organiza todo el código del libro en árbol. La estructura típica al insertar un módulo es esta:
| Carpeta / objeto | Qué contiene |
|---|---|
| VBAProject (TuLibro.xlsx) | El libro entero |
| └ Microsoft Excel Objetos | Las hojas y ThisWorkbook |
| └ Hoja1 (Hoja1) | Código asociado a la Hoja1 |
| └ Hoja2 (Hoja2) | Código asociado a la Hoja2 |
| └ ThisWorkbook | Código del libro (apertura, guardado…) |
| └ Módulos | Módulos estándar con macros normales |
| └ Module1 | Tu código de macros |
Los objetos de Hoja1 y ThisWorkbook sirven para macros que se disparan al abrir el libro o al cambiar de hoja. Para macros que ejecutas a mano con F5 o desde Alt+F8, escribe en un Módulo normal.
La ventana Inmediato: tu consola para probar
La ventana Inmediato ejecuta una línea en cuanto pulsas Entrar. Es ideal para probar el dato del alumno antes de escribir la macro completa.
Por ejemplo, escribe y pulsa Entrar:
?Range("A2").Value
01/10/2026
El signo de interrogación delante es un atajo para Debug.Print, que escribe el resultado en la ventana Inmediato. Así, sin crear un Sub, sabes qué lee VBA de esa celda.
Crear un módulo y escribir tu primera macro
Vas a trabajar con una hoja sencilla de gastos domésticos, que es el libro que irá creciendo con cada práctica. Primero la montas en una hoja normal de Excel y luego le añades el código en VBA.
| A | B | C | |
|---|---|---|---|
| 1 | Fecha | Concepto | Importe |
| 2 | 01/10/2026 | Supermercado | 85,40 |
| 3 | 03/10/2026 | Gasolina | 45,00 |
| 4 | 05/10/2026 | Restaurante | 32,50 |
| 5 | 08/10/2026 | Supermercado | 62,10 |
| 6 | 12/10/2026 | Farmacia | 18,75 |
| 7 | 15/10/2026 | Luz | 54,20 |
| 8 | 18/10/2026 | Internet | 39,90 |
Insertar un módulo nuevo
- Con el editor abierto (Alt+F11), en la barra de menús elige Insertar > Módulo.
- En el Explorador de proyectos aparece la carpeta Módulos con Module1 dentro.
- El cursor se coloca automáticamente en la ventana de Código del módulo, listo para escribir.
Escribir el Sub paso a paso
En la ventana de Código del Module1 escribe este Sub, que calcula el total de la columna C y lo escribe en C10:
Sub TotalGastos()
Range("C10").FormulaLocal = "=SUMA(C2:C8)"
MsgBox "Total listo"
End Sub
FormulaLocal se escribe con punto y coma porque es una cadena de texto, no fórmulas en vivo.Para ejecutarlo:
- Coloca el cursor dentro del Sub.
- Pulsa F5.
- Vuelve a Excel con Alt+F11 o el icono de Excel arriba a la izquierda.
- La celda A10 contiene 175,00 (la suma de los importes) y ha aparecido un cuadro con el mensaje "Total listo".
| A | B | C | |
|---|---|---|---|
| 1 | Fecha | Concepto | Importe |
| 2 | 01/10/2026 | Supermercado | 85,40 |
| 3 | 03/10/2026 | Gasolina | 45,00 |
| 4 | 05/10/2026 | Restaurante | 32,50 |
| 5 | 08/10/2026 | Supermercado | 62,10 |
| 6 | 12/10/2026 | Farmacia | 18,75 |
| 7 | 15/10/2026 | Luz | 54,20 |
| 8 | 18/10/2026 | Internet | 39,90 |
| 9 | |||
| 10 | Total | 337,85 |
Ejecutar, detener y borrar una macro
Una vez escrita la macro, hay cuatro formas de ejecutarla:
- Pulsar F5 desde el editor, con el cursor dentro del Sub.
- Desde la hoja, pulsar Alt+F8, elegir TotalGastos en la lista y pulsar Ejecutar.
- Asignarla a un botón en la hoja (Programador > Insertar > Botón).
- Asignarla a un atajo de teclado con Alt+F8 > Opciones.
Si una macro se queda colgada en un bucle infinito, hay que pararla:
- Pulsa
Ctrl+Pausapara interrumpir la ejecución. - Vuelve al editor (Alt+F11) y pulsa el botón Detener de la barra de herramientas (cuadrado azul) o Ejecutar > Restablecer.
Para borrar una macro o un módulo entero:
- En el Explorador de proyectos, clic derecho sobre el módulo y elige Eliminar.
- Confirma si quieres exportar el módulo a un archivo .bas antes de borrarlo o si prefieres eliminarlo sin guardar.
Grabar una macro y leer el código que genera la grabadora
La grabadora de macros convierte tus clics en código VBA sin que tengas que teclearlo. Es la mejor forma de aprender el nombre de cada cosa.
- En la pestaña Programador, pulsa Grabar macro.
- Dale un nombre (por ejemplo MiTotal) y, si quieres, un atajo de teclado.
- Pulsa Aceptar; a partir de ahora Excel memoriza cada acción.
- Ve a la celda C10 y escribe
=SUMA(C2:C8); pulsa Entrar. - Selecciona la celda A11 y escribe
Mensaje; toca Entrar. - Vuelve a Programador y pulsa Detener grabación.
- Abre el editor con Alt+F11 y mira el módulo que Graba al suelo: verás un Sub con líneas como
Range("C10").Select,ActiveCell.FormulaR1C1 = "=SUM(R[-8]C:R[-2]C)",Range("A11").SelectyActiveCell.FormulaR1C1 = "Mensaje".
Sub MiTotal()
Range("C10").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-8]C:R[-2]C)"
Range("A11").Select
ActiveCell.FormulaR1C1 = "Mensaje"
End Sub
FormulaR1C1 con la fórmula en inglés (SUM, no SUMA) y con coma como separador. Es la sintaxis interna del motor de cálculo de Excel, sea cual sea el idioma de la interfaz.Qué partes del código merece la pena entender
Las cuatro líneas que aparecen en casi toda macro grabada son:
- Sub Nombre(): la línea que abre la macro. La macro empieza aquí.
- End Sub: la línea que cierra la macro. Lo que hay entre medias es lo que se ejecuta.
- Range("A1").Select: selecciona una celda para que la siguiente acción caiga sobre ella. Muchas veces se puede borrar sin que la macro deje de funcionar.
- Selection.Value = … o ActiveCell.FormulaR1C1 = …: escribe un valor o una fórmula en la celda seleccionada.
Entender estas cuatro líneas te permite borrar las sobras de la grabadora (Select, Activate, desplazamientos) y dejar el código limpio.
Guardar el libro con macros y dónde se pierden
Las macros viven dentro del archivo, pero solo si el archivo se guarda en el formato que las conserva.
- En Excel, ve a Archivo > Guardar como.
- Elige la carpeta y el nombre.
- En el desplegable Tipo, elige *Libro de Excel habilitado para macros (.xlsm)**.
- Pulsa Guardar.
Errores típicos al empezar con el editor
Cuando empiezas con VBA, tres tropiezos aparecen una y otra vez. Con el libro de gastos abierto en Module1, vamos a verlos y arreglarlos uno a uno.
«Se ha producido el error 1004 en tiempo de ejecución» al asignar una fórmula
Escribes esta línea y al ejecutarla VBA muestra el error 1004:
Sub Ejemplo()
Range("C10").Formula = "=SUMA(C2:C8)"
End Sub
La causa es que .Formula exige los nombres de función en inglés y la coma como separador de argumentos, no el punto y coma. Lo que Excel entiende dentro de .Formula es la sintaxis del motor de cálculo, no la de tu idioma.
El arreglo es cambiar a .FormulaLocal (acepta español y punto y coma) o pasar la fórmula a inglés:
Sub Ejemplo()
Range("C10").FormulaLocal = "=SUMA(C2:C8)"
End Sub
=SUM(C2:C8)
.FormulaR1C1, que también exige inglés y coma. Las versiones Local (FormulaLocal, FormulaR1C1Local) son las que escriben en el idioma del usuario.Pulsar F5 y no pasar nada: el Sub está en ThisWorkbook y no se ve en Alt+F8
Escribes un Sub en la ventana de Código de ThisWorkbook (porque la abriste por error al hacer doble clic en el Explorador de proyectos), pulsas F5 y VBA dice "No se puede ejecutar la macro. Es posible que la macro no esté disponible".
La causa es que los Sub escritos en ThisWorkbook o en las hojas se ejecutan automáticamente al abrir el libro o al pasar por la hoja (son eventos), no desde Alt+F8.
El arreglo tiene dos caminos:
- Abre el Explorador de proyectos, doble clic en Module1 y mueve el Sub ahí con copiar y pegar.
- O cambia la primera línea a un
Private Sub Workbook_Open()para que se ejecute solo al abrir el libro.
La macro se ejecuta pero el libro no se puede guardar en .xlsx
Después de escribir y probar la macro, vas a Archivo > Guardar como, eliges *Libro de Excel (.xlsx)** y Excel muestra el aviso "Las características siguientes no se pueden guardar en libros sin macros: Proyecto de VBA".
La causa es que las macros solo se conservan en el formato .xlsm. Si guardas como .xlsx, Excel borra el módulo entero sin avisarte dos veces.
El arreglo es elegir *Libro de Excel habilitado para macros (.xlsm) en el desplegable Tipo** de Guardar como y volver a guardar.
Lo que el editor de VBA no puede hacer (y con qué se sustituye)
El editor de VBA tiene límites claros. Si tu caso choca con uno de ellos, hay sustitutos modernos.
- Excel para la web: abre y ejecuta macros de libros que ya las llevan (algunas), aunque en la mayoría de los casos no permite ni editarlas ni escribirlas nuevas. La alternativa en la web son los Scripts de Office, que se escriben en JavaScript y se graban desde Automatizar de buscar en la cinta.
- Excel para Mac: trae editor de VBA, pero el entorno es más limitado y la grabadora tiene menos opciones. La alternativa moderna en Mac también son los Scripts de Office.
- Python en Excel: la función
=PY()permite escribir código Python dentro de una celda y mezclarlo con el resto de la hoja. Está en Microsoft 365 para Windows y para la web; no está en Excel 2024 ni en Excel 2021. Si tienes Microsoft 365, prueba=PY()para cálculos que en VBA serían largas o un parser más limpio. - Power Query: si lo que quieres es traer datos de otros sitios, limpiarlos y combinarlos, Power Query (Datos > Obtener datos) hace el trabajo sin escribir código. Está en Excel 2016 y posteriores, y en Microsoft 365.
Lo que ya sabes hacer con el editor de VBA
Antes de cerrar, repasamos las cuatro que ya tienes en la mano, una por línea, y el siguiente paso para seguir:
- Abrir el editor con Alt+F11 aunque la pestaña Programador esté oculta.
- Escribir un Sub dentro de un módulo estándar (Insertar > Módulo) y ejecutarlo con F5.
- Pasar fórmulas a celdas con
.FormulaLocal(español, punto y coma) o con.Formula(inglés, coma). - Guardar el libro como .xlsm para no perder las macros.
El siguiente paso natural es leer el código que escribe la grabadora de macros sobre una tarea tuya: graba una macro, ábrela en el editor, borra las líneas Select y Activate que no aportan nada y quédate solo con las que escriben valores o fórmulas. Así entiendes cada línea y empiezas a escribir tus propias macros en vez de grabarlas.
Dudas al abrir y usar el editor de VBA en Excel
1. ¿Se puede aprender VBA en Excel de forma sencilla aunque no sepas programar?
Sí. VBA usa un lenguaje muy parecido al español estructurado y solo necesitas aprender a leer y escribir instrucciones básicas. Empieza grabando una macro con la Grabadora (Programador > Grabar macro), abre después el editor con Alt+F11 y mira el código que se generó: ahí verás cómo Excel traduce tus clics a líneas que ya puedes entender y modificar poco a poco.
2. ¿Dónde está la documentación oficial de VBA para Excel?
La referencia completa de VBA está en learn.microsoft.com, dentro de la sección «Office VBA reference». Ahí encontrarás el modelo de objetos de Excel (Workbook, Worksheet, Range, etc.) con cada propiedad, método y evento, y ejemplos copiables en español e inglés que puedes pegar directamente en tu proyecto.
3. ¿Qué es exactamente un compilador de VBA?
VBA no se compila a un archivo .exe como otros lenguajes: se compila a un código intermedio (p-code) que se ejecuta dentro de la aplicación anfitrión, en este caso Excel. Por eso no existe un «compilador de VBA» independiente: la compilación ocurre en segundo plano al ejecutar la macro, y el archivo resultante sigue siendo un .xlsm con el código fuente visible.
4. ¿Cómo es un curso básico de VBA para Excel?
Un curso básico cubre, en este orden: activar la pestaña Programador, grabar macros, leer y entender el código generado, crear Sub propios, usar variables, bucles For Next y condicionales If, y manejar celdas con Range y Cells. Con unas 20 horas de práctica guiada puedes automatizar tareas reales como copiar datos entre hojas, generar informes o limpiar tablas repetitivas.
5. ¿Hay que descargar algo aparte para usar VBA en Excel?
No. VBA viene integrado en Excel de escritorio desde hace décadas y solo necesitas tener la pestaña Programador visible (Archivo > Opciones > Personalizar cinta de opciones, marca Programador). Sí es cierto que para escribir código más cómodo mucha gente instala el editor gratuito Visual Studio Code con la extensión «VBA», pero es opcional: con el editor interno de Excel (Alt+F11) tienes todo lo necesario.
6. ¿WPS Office tiene una biblioteca de soporte para macros VBA?
WPS Office incluye su propio módulo de macros compatible con VBA, llamado WPS Office Macros, basado en la sintaxis de Visual Basic. Permite abrir y ejecutar la mayoría de archivos .xlsm, aunque algunas funciones avanzadas del modelo de objetos de Excel (como eventos de gráficos o controles ActiveX recientes) pueden no estar disponibles o requerir la biblioteca VBA de WPS específica.
7. ¿Se puede descargar Visual Basic 6.0 gratis?
Visual Basic 6.0 es un entorno de desarrollo de 1998 que Microsoft dejó de distribuir hace años, y su descarga oficial gratuita ya no está disponible. Si necesitas escribir macros de Excel, no lo necesitas: el editor de VBA integrado en Excel (Alt+F11) usa un lenguaje basado en VB6 y cubre todo lo que una hoja de cálculo puede automatizar.
8. ¿Qué diferencia hay entre VBA y Visual Basic .NET?
VBA es un lenguaje interpretado que vive dentro de aplicaciones como Excel, Access o Word, y sus macros se guardan dentro del propio archivo .xlsm. Visual Basic .NET, en cambio, es un lenguaje compilado de la plataforma .NET que se usa para crear programas independientes (aplicaciones de escritorio, web o servicios) con Visual Studio. Para automatizar Excel, VBA sigue siendo la opción directa; VB.NET se conecta a Excel desde fuera mediante bibliotecas como Microsoft.Office.Interop.Excel.
Fuentes
- MicrosoftEl editor de VBA y la primera macro — documentación oficialconsultado el 05/10/2026
- MicrosoftLAMBDA — documentación oficialconsultado el 05/10/2026
- MicrosoftRange.Formula, FormulaLocal, FormulaR1C1 y FormulaR1C1Local — documentación oficialconsultado el 05/10/2026
- MicrosoftAtajos que funcionan igual en cualquier idioma — documentación oficialconsultado el 05/10/2026
- MicrosoftPY — documentación oficialconsultado el 05/10/2026