VBA + Excel

Ejemplos de Código VBA


Excel Automation Tool

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 Profundidadyes
Ejemplos y tutoriales de macros VBA en PowerPoint
Ordenar Datos en Excel VBA
Usando Find and Replace (Buscar y Reemplazar) en Excel VBA
Basicosyes
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 VBAyes
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
Buclesyes
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 Celdasyes
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 Columnasyes
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
Hojasyes
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 Trabajoyes
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)
Matricesyes
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
Erroresyes
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
Variablesyes
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
Ajustesyes
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 Cadenasyes
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
Vistayes
VBA – Desplazamiento Vertical y Horizontal
VBA – Ampliar y Reducir Vista/Tamaño de Hojas de Cálculo
Archivosyes
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 Objetosyes
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
Formatoyes
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
Eventosyes
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 Controlesyes
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
Formatoyes
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
Funcionesyes
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 Avanzadayes
Shell – VBA
VBA Regex
VBA SendKeys – Enviar Pulsaciones de Teclas
Internetyes
VBA Enviar Emails desde Excel A Través de Gmail
VBA Enviar Emails desde Excel A Través de Outlook
Accessyes
Wordyes

AI Formula Generator

Pruébelo Gratis


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

excel vba examples free download
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.

practice vba macros