VBA + Excel
Ejemplos de Código VBA
AutoMacro: Complemento VBA con cientos de ejemplos de código VBA listos para usar ¡y mucho más!
Busque en la siguiente lista ejemplos gratuitos de código VBA de Excel completos con explicaciones.
Algunos incluyen también archivos descargables. Estas macros y scripts VBA de Excel están desarrollados profesionalmente y listos para usar.
Esperamos que esta lista le resulte útil
Visite nuestra página de Ejemplos de Código VBA en inglés para encontrar más de 500 artículos
Ejemplos de Código VBA | |
Tutoriales en Profundidad | yes |
Ejemplos y tutoriales de macros VBA en PowerPoint | |
Ordenar Datos en Excel VBA | |
Usando Find and Replace (Buscar y Reemplazar) en Excel VBA | |
Basicos | yes |
VBA If, ElseIf, Else (Guía definitiva de las sentencias If) | |
VBA Pegado y Pegado Especial | |
VBA – Cortar, copiar y pegar desde una macro | |
VBA Guardar Archivo – 20 Ejemplos fáciles | |
Conceptos de Programación VBA | yes |
Comentarios en VBA | |
VBA – Cómo Renombrar o Eliminar un Módulo o Formulario | |
VBA – Devolver un Valor desde un Subprocedimiento | |
VBA – Llamar Función desde un Sub | |
Funciones VBA – Llamada, valor de retorno y parámetros | |
VBA On Error – Mejores Prácticas de Manejo de Errores | |
VBA – Procedimientos Privados vs Públicos (Procedimientos y Funciones) | |
VBA Sentencia Select Case | |
VBA – Ejecutar una macro desde una macro | |
VBA – Ejecutar una Macro Línea por Línea | |
VBA DoEvents | |
VBA Salir de Procedimiento o Función | |
VBA – On Error Exit Sub | |
Bucles | yes |
VBA – Bucle For a través de un rango de celdas | |
Bucles VBA de Excel – For Each, For Next, Do While, Bucles Anidados y Más | |
VBA – Ejemplos de For Each (Referencia Rápida) | |
VBA Salida de Bucle For | |
VBA Salida de Bucle Do… Loop | |
Rangos y Celdas | yes |
Rangos y Celdas de Excel VBA | |
Fórmulas Excel VBA | |
Excel VBA Redimensionar Rango | |
VBA – Autorrellenar (Autofill) con una Macro | |
VBA – ClearFormats – Eliminar el Formato de Cada Celda del Rango | |
VBA – Obtener la columna o fila de la celda activa | |
VBA – Seleccionar todas las celdas | |
VBA – Obtener, establecer o cambiar el valor de Celda | |
VBA Limpiar Contenido / Borrar Celdas | |
VBA Copiar Destino (Copiar Rango a Otra Hoja) | |
VBA Región Actual | |
VBA – Rango Dinámico | |
VBA Resaltar Celda | |
VBA Combinar y Descomponer Celdas | |
VBA – Offset de Rango o Celda | |
VBA – Referencia de Rango / Celda | |
VBA Range.End (xlDown, xlUp, xlToRight, xlToLeft) | |
VBA – Seleccionar Rango / Celdas | |
VBA – Activecell Offset | |
Filas y Columnas | yes |
VBA – Seleccionar (y trabajar con) Filas y Columnas Enteras | |
Eliminar o Insertar Filas en Función del Valor de la Celda | |
Ocultar / Mostrar Columnas y Filas | |
Mostrar todas las filas/columnas | |
VBA – Autoajustar Columnas | |
VBA – Contar Filas en Selección | |
VBA Copiar / Pegar Filas y Columnas | |
VBA Eliminar toda la fila o columna | |
VBA – Agrupar Filas y Columnas | |
VBA Insertar fila o columna | |
VBA Establecer ancho de columna o alto de fila | |
Hojas | yes |
VBA – Sheets – La guía definitiva | |
VBA – Ocultar (o mostrar) una hoja de cálculo | |
VBA – Cómo Utilizar las Funciones de Hoja de Cálculo (y una Lista Completa) | |
VBA – Bucle A Través de Todas las Hojas de Cálculo con For Each | |
VBA – Macro para listar todas las Hojas de un Libro de Trabajo | |
VBA – Mostrar Todas las Hojas de Trabajo | |
VBA Borrar toda la hoja | |
VBA Copiar Hoja de Cálculo | |
VBA Obtener el nombre de la Hoja / Cambiar el nombre de la Hoja | |
VBA Proteger / Desproteger Hojas de Trabajo | |
VBA Rutinas para añadir y nombrar hojas de trabajo | |
VBA Seleccionar Hoja, Activar Hoja y Obtener Hoja Activa | |
VBA – Rango de Hoja de Trabajo | |
Libros de Trabajo | yes |
VBA – Crear un nuevo libro de trabajo (Workbooks.Add) | |
VBA Abrir / Cerrar Libro de Trabajo | |
VBA – Nombre de Libro (Get, Set, sin Extensión) | |
VBA – Protección de Libros de Trabajo (proteger/desproteger con contraseña) | |
VBA – Trabajar con libros de trabajo (El objeto Workbook) | |
Matrices | yes |
VBA – Matrices | |
VBA Excel – Colecciones | |
VBA ArrayList – Mega-Guía Actualizada para 2022 | |
VBA – Matriz de Objetos | |
VBA – Array de Variantes | |
VBA – Array dinámico (Redim y Redim Preserve) | |
VBA – Declarar (Dim), Crear e Inicializar una Variable Tipo Matriz | |
VBA – Longitud/tamaño de un Array | |
VBA – Asignar Rango a un Array | |
VBA – Borrar Matriz – Función Erase | |
VBA Bucle a través de una matriz / Recorrer elementos de una matriz. | |
VBA Transponer Array | |
VBA Buscar (Encontrar) valor en una Matriz | |
VBA – Rellenar Array con Valores Únicos de una Columna | |
VBA – Eliminar Duplicados de un Array/Matriz | |
VBA – Funciones para devolver una Matriz | |
VBA – Array Multidimensional (Arrays 2D) | |
VBA – Salida (impresión) de una matriz a un rango | |
Errores | yes |
Excel VBA – Try Catch – Error – Capturar Errores | |
VBA Error 1004 – Error Definido por la Aplicación o Error definido por el Objeto | |
VBA – On Error Resume Next or Goto 0 – Manejo de Errores | |
VBA Error Throw / Raise – Err.Raise – Mensaje de Error Personalizado | |
Solucione el Error 438 de VBA: El Objeto No Admite Esta Propiedad o Método | |
Variables | yes |
Tipo de Datos Booleanos de VBA (Variable Dim) | |
VBA – Resumen de Tipos de Datos – Variables y Constantes | |
VBA Variable de fecha | |
VBA – Variable Global | |
VBA – Variable pública – Utilizar una variable en varios módulos o submódulos | |
VBA Variables de Objetos de Rango (Dim / Set Range) | |
VBA Tipo de Datos String (Cadena de Texto) – Dim Variable | |
Ajustes | yes |
VBA – Mostrar Mensaje en la Barra de Estado | |
VBA – Desactivar (o activar) los cálculos automáticos | |
VBA – Desactivar la actualización de la pantalla | |
Textos y Cadenas | yes |
Excel VBA – Dividir Cadena en Celdas | |
Evitar que VBA Distinga entre Mayúsculas y Minúsculas – Opción Comparar Texto | |
VBA – Bucle a través de una cadena | |
VBA – Eliminar caracteres del lado izquierdo o derecho de una cadena de longitud variable | |
VBA – Comparar cadenas – StrComp | |
VBA – No Igual a, Mayor Que o Igual a y Otros Operadores de Comparación | |
VBA Concatenar Cadenas de Texto (& – Ampersand) | |
VBA Convertir Entero (Número) a Cadena de Texto | |
VBA – Función CDate – Convertir Cadena a Fecha | |
VBA Convertir Cadena de Texto a Número | |
VBA – Operador Like | |
VBA Nueva línea / Retorno de carro | |
VBA Función Espacio – Añadir Espacios a una Cadena | |
VBA – Funciones de cadenas y subcadenas | |
VBA – Texto a columnas | |
VBA – Funciones Trim, LTrim, y RTrim – Eliminar Espacios de Cadenas de Texto | |
VBA – UCASE, LCASE – Funciones de mayúsculas y minúsculas | |
Vista | yes |
VBA – Desplazamiento Vertical y Horizontal | |
VBA – Ampliar y Reducir Vista/Tamaño de Hojas de Cálculo | |
Archivos | yes |
Mover Archivos con VBA FileSystemObject (MoveFile) | |
VBA – Exportar Rango a CSV (Archivo de Texto Delimitado) | |
VBA – Leer Archivo de Texto Línea por Línea | |
VBA – Escribir en un Archivo de Texto | |
VBA Comprobar si existe un archivo o carpeta | |
VBA – Combinar Varios Archivos de Excel en un solo Libro | |
VBA – Copiar Archivo / Libro de Trabajo | |
VBA – Eliminar Archivo / Libro de Trabajo | |
VBA Obtener Nombre de Archivo con GetFileName (FSO) | |
VBA GetFolder & GetFile (Obtener Propiedades de Archivos y Carpetas) | |
VBA Lista de Archivos en la Carpeta | |
VBA Cuadro de Diálogo Abrir Archivo | |
VBA Abrir Archivo de Texto con OpenTextFile | |
Leer Archivo de Texto (Leer, Analizar e Importar) | |
VBA – Renombrar archivo | |
Formas, Gráficos y Objetos | yes |
VBA Guía para Gráficos y Diagramas | |
VBA Guía para Tablas Dinámicas | |
Excel VBA – Agregar Botón | |
VBA Cuadro de Lista – Elemento seleccionado | |
VBA – Tablas y ListObjects | |
Formato | yes |
Uso del Formato Condicional con Excel VBA | |
VBA – Negrita | |
VBA – Bordes de Celda | |
VBA Fuente de Celda – Cambiar el color, el tamaño, el estilo y más | |
VBA – Centrar Texto – Alineación de Celdas (Horizontal y Vertical) | |
VBA Formato de Celdas | |
VBA Formato de Fecha | |
VBA Formato de Tiempo/Hora | |
Eventos | yes |
VBA – Ejecutar una macro al iniciar Excel | |
VBA – Evento Change de una hoja – Ejecutar una macro cuando una celda cambia | |
Formularios, Cuadro de Mensajes y Controles | yes |
VBA – Caja de Mensajes (Msgbox) | |
VBA InputBox – Obtener la Entrada de un Usuario | |
VBA – Creación de Formularios | |
VBA – Botón de opción en Excel | |
VBA – Casilla de Verificación | |
VBA Cuadro Combinado | |
VBA Listbox (Cuadro de Lista) | |
VBA Abrir o Cerrar Formulario | |
Formato | yes |
Uso del Formato Condicional con Excel VBA | |
VBA – Negrita | |
VBA – Bordes de Celda | |
VBA Fuente de Celda – Cambiar el color, el tamaño, el estilo y más | |
VBA – Centrar Texto – Alineación de Celdas (Horizontal y Vertical) | |
VBA Formato de Celdas | |
VBA Formato de Fecha | |
VBA Formato de Tiempo/Hora | |
Varios(as) | yes |
Excel VBA – Limpiar Portapapeles | |
Excel VBA – Pausar (Break / Stop) y Reanudar una Macro | |
VBA Guardar Como (imprimir) en PDF | |
Excel VBA: Lista de Códigos ColorIndex y Colores RGB | |
Formateo de números en Excel VBA | |
Cómo instalar (o desinstalar) un complemento VBA (archivo .xlam) para Microsoft Excel | |
Cómo Utilizar las Estructuras VBA | |
Eliminación de Valores Duplicados en Excel VBA | |
VBA – Añadir o eliminar comentarios de celdas | |
VBA – Obtener la fecha de hoy (fecha actual) | |
VBA – Filtro de Tabla Dinámica | |
VBA – Actualizar Tabla Dinámica / Todas las Tablas Dinámicas | |
VBA – Uso de Goal Seek en VBA | |
VBA – Uso del Complemento “Herramientas para Análisis – VBA” | |
VBA Application.CutCopyMode = Falso – ¿Qué es? | |
VBA Calculate – Calcular ahora, libro, hoja o rango. | |
VBA Llamar / Ejecutar Subprocedimiento desde otro Subprocedimiento | |
VBA Copiar al Portapapeles | |
VBA Buscar Valor en Columna | |
VBA – GoTo – Ir a una etiqueta de línea | |
VBA – Is Nothing | |
VBA Múltiples (Anidadas) Sentencias If | |
VBA – Funciones Wait & Sleep – Pausa / Demora de Código VBA | |
VBA – Comodines | |
VBA – Desactivar Autofiltro / Borrar Filtros | |
VBA Lista desplegable (Validación de datos) | |
VBA Hipervínculos | |
VBA – Número aleatorio | |
Funciones | yes |
Uso de IsNumeric e IsNumber en VBA | |
VBA Promedio – AVERAGE, AVERAGEA, AVERAGEIF | |
VBA Contar (Función Contar) | |
Funciones de Fecha en VBA | |
VBA Función Filter – Arrays | |
VBA Función Len – Obtener Longitud de Cadena | |
Funciones Round, RoundUp y RoundDown | |
VBA – Función Split – Dividir una Cadena de Texto en un Array | |
VBA Función suma (rangos, columnas y más) | |
Funciones VBA SUMIF y SUMIFS | |
VBA – Funciones UBound y LBound | |
Programación Avanzada | yes |
Shell – VBA | |
VBA Regex | |
VBA SendKeys – Enviar Pulsaciones de Teclas | |
Internet | yes |
VBA Enviar Emails desde Excel A Través de Gmail | |
VBA Enviar Emails desde Excel A Través de Outlook | |
Access | yes |
Word | yes |
Ejemplos de Macros de Excel
A continuación encontrará una lista de ejemplos básicos de macros para tareas comunes de automatización de Excel.
Copiar y Pegar una Fila de una Hoja a Otra
Esta macro super simple copiará una fila de una hoja a otra.
Sub Copiar_y_Pegar_Una_Fila()
'Copiar y Pegar Fila
Sheets("Hoja1").Range("1:1").Copy Sheets("Hoja2").Range("1:1")
Application.CutCopyMode = False
End Sub
Enviar Email
Esta útil macro iniciará Outlook, redactará un correo electrónico y adjuntará el ActiveWorkbook.
Sub Enviar_eMail()
Dim OutApp As Object
Dim OutMail As Object
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.to = "test@test.com"
.Subject = "Correo de PruebaEmail"
.Body = "Cuerpo del Mensaje"
.Attachments.Add ActiveWorkbook.FullName
.Display
End With
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
Listar Todas las Hojas del Libro de Trabajo
Esta macro listará todas las hojas de un libro de trabajo.
Sub Listar_Hojas()
Dim ws As Worksheet
Dim x As Integer
x = 1
ActiveSheet.Range("A:A").Clear
For Each ws In Worksheets
ActiveSheet.Cells(x, 1) = ws.Name
x = x + 1
Next ws
End Sub
Mostrar Todas las Hojas de Trabajo
Esta macro mostrará todas las hojas de trabajo.
' Mostrar todas las hojas de trabajo
Sub Mostrar_Todas_Las_Hojas()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
ws.Visible = xlSheetVisible
Next ws
End Sub
Ocultar Todas las Hojas de Trabajo Excepto la Activa
Esta macro ocultará todas las hojas de trabajo excepto la hoja de trabajo activa.
' Ocultar Todas las Hojas Excepto la Hoja Activa
Sub Ocultar_Todas_las_Hojas_Excepto_la_Hoja_Activa()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> ActiveSheet.Name Then ws.Visible = xlSheetHidden
Next ws
End Sub
Desproteger Todas las Hojas de Trabajo
Este ejemplo de macro desprotegerá todas las hojas de trabajo de un libro.
' Desproteger todas las Hojas de Trabajo
Sub Desproteger_Todas_las_Hojas_de_Trabajo()
Dim ws As Worksheet
For Each ws In Worksheets
ws.Unprotect "password"
Next ws
End Sub
Proteger Todas las Hojas de Trabajo
Esta macro protegerá todas las hojas de trabajo de un libro.
' Proteger todas las Hojas de Trabajo
Sub Proteger_Todas_las_Hojas_de_Trabajo()
Dim ws As Worksheet
For Each ws In Worksheets
ws.protect "password"
Next ws
End Sub
Borrar Todas las Formas
Esta macro borrará todas las formas en una hoja de trabajo.
Sub Borrar_Todas_las_Formas()
Dim forma As Shape
For Each forma In ActiveSheet.Shapes
forma.Delete
Next
End Sub
Borrar Todas las Filas en Blanco de una Hoja de Trabajo
Esta macro de ejemplo eliminará todas las filas en blanco de una hoja de trabajo.
Sub Eliminar_Filas_en_Blanco()
Dim x As Long
With ActiveSheet
For x = .Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
If WorksheetFunction.CountA(.Rows(x)) = 0 Then
ActiveSheet.Rows(x).Delete
End If
Next
End With
End Sub
Resaltar Valores Duplicados en la Selección
Utilice esta sencilla macro para resaltar todos los valores duplicados en una selección.
' Resaltar Valores Duplicados en la Selección
Sub Resaltar_Valores_Duplicados_en_la_Seleccion()
Dim myRange As Range
Dim cell As Range
Set myRange = Selection
For Each cell In myRange
If WorksheetFunction.CountIf(myRange, cell.Value) > 1 Then
cell.Interior.ColorIndex = 36
End If
Next cell
End Sub
Resaltar Números Negativos
Esta macro automatiza la tarea de resaltar números negativos.
' Resaltar Números Negativos
Sub Resaltar_Numeros_Negativos()
Dim myRange As Range
Dim cell As Range
Set myRange = Selection
For Each cell In myRange
If cell.Value < 0 Then
cell.Interior.ColorIndex = 36
End If
Next cell
End Sub
Resaltar Filas Alternativas
Esta macro es útil para resaltar filas alternas.
' Resaltar Filas Alternativas
Sub Resaltar_Filas_Alternativas()
Dim cell As Range
Dim myRange As Range
myRange = Selection
For Each cell In myRange.Rows
If cell.Row Mod 2 = 1 Then
cell.Interior.ColorIndex = 36
End If
Next cell
End Sub
Resaltar Celdas en Blanco en la Selección
Esta macro básica resalta celdas en blanco en una selección.
' Resaltar Celdas en Blanco en la Selección
Sub Resaltar_Celdas_en_Blanco()
Dim rng As Range
Set rng = Selection
rng.SpecialCells(xlCellTypeBlanks).Interior.Color = vbCyan
End Sub
Ejemplos de Macros VBA de Excel – Descarga Gratuita
Hemos creado un complemento gratuito de Ejemplos de Código VBA (Macros). El complemento contiene más de 100 ejemplos de macros listos para usar, incluidos los ejemplos de macros anteriores
Página de descarga
Preguntas frecuentes sobre macros Excel / VBA
¿Cómo escribir código VBA (Macros) en Excel?
Para escribir código VBA en Excel, abra el Editor VBA (ALT + F11). Escriba «Sub HolaMundo», Presione Enter, ¡y habrá creado una Macro! O Copie y pegue uno de los procedimientos listados en esta página en la ventana de código.
¿Qué es Excel VBA?
VBA es el lenguaje de programación utilizado para automatizar Excel.
¿Cómo utilizar VBA para automatizar Excel?
Usted utiliza VBA para automatizar Excel creando Macros. Las macros son bloques de código que completan ciertas tareas.
Practicar VBA
Puede practicar VBA con nuestro tutorial interactivo de VBA.