Su pensión en Colpensiones. Calcule la que tendría hoy o planee la que quiere tener. Conózcalo aquí

Códigos de macros más comunes en Excel

Quien empieza a programar macros en Excel termina usando una y otra vez las mismas instrucciones: seleccionar celdas, escribir datos, dar formato, copiar y pegar, borrar, insertar filas o recorrer un rango. Reunimos los códigos de VBA más comunes, con una explicación breve de cada uno, para copiarlos y adaptarlos. ¿Dónde se escriben y cuáles son?

Dónde se escriben las macros.

Las macros se escriben en el editor de Visual Basic, que se abre con Alt + F11. Allí se elige «Insertar», «Módulo» y se escribe el código entre Sub NombreMacro() y End Sub. Para ejecutarla, se presiona F5 dentro de la macro o Alt + F8 desde la hoja. El libro debe guardarse como habilitado para macros (.xlsm), como se explica en el artículo sobre cómo guardar un libro de Excel con macros.

En los ejemplos se usa Range("A1") para referirse a una celda fija y Selection para lo que el usuario tenga seleccionado. Un apóstrofo convierte el resto de la línea en un comentario que la macro no ejecuta.

Seleccionar y escribir en celdas.

Estos son los códigos para moverse por la hoja y escribir datos o fórmulas:

Código Qué hace
Range("A1").Select Selecciona la celda A1
Range("A1:C10").Select Selecciona un rango
Cells(5, 2).Select Selecciona la fila 5, columna 2 (B5)
ActiveCell.Offset(1, 0).Select Baja una celda desde la activa
Range("A1").Value = "Ventas" Escribe un texto o un número
Range("B1").Formula = "=SUM(B2:B10)" Escribe una fórmula
Range("C1").Value = Range("A1").Value Copia el valor de una celda en otra

Las fórmulas se escriben en inglés y con coma como separador, aunque Excel esté en español; si se prefiere escribirlas en español, se usa la propiedad FormulaLocal. No hace falta seleccionar una celda para escribir en ella: Range("A1").Value = "Ventas" funciona sin el Select, y la macro es más rápida.

Dar formato.

El formato de la fuente se agrupa con With para no repetir el objeto en cada línea:

With Selection.Font

.Bold = True                          ' negrilla

.Italic = True                        ' cursiva

.Underline = xlUnderlineStyleSingle   ' subrayado

.Name = "Calibri"                     ' tipo de letra

.Size = 12                            ' tamaño

.Color = RGB(31, 56, 100)             ' color

End With

Para la alineación, el relleno y el formato de número se usan propiedades del rango:

Código Qué hace
Selection.HorizontalAlignment = xlCenter Centra (xlLeft a la izquierda, xlRight a la derecha)
Selection.Interior.Color = RGB(255, 242, 204) Color de relleno
Selection.NumberFormat = "#,##0" Formato de número con separador de miles
Columns("A:D").AutoFit Ajusta el ancho de las columnas

Los colores se indican con RGB, que combina rojo, verde y azul con valores de 0 a 255.

Copiar, cortar y pegar.

Las instrucciones para copiar y pegar son las siguientes:

Código Qué hace
Range("A1:C10").Copy Range("E1") Copia y pega en una sola línea
Selection.Copy Copia la selección
Selection.Cut Corta la selección
ActiveSheet.Paste Pega en la celda activa
Range("E1").PasteSpecial Paste:=xlPasteValues Pega solo los valores
Application.CutCopyMode = False Quita el borde punteado de la copia

La primera forma es la más eficiente, porque copia sin pasar por el portapapeles ni seleccionar celdas.

Ordenar y buscar.

Para ordenar la tabla que empieza en A1 por la primera columna, con encabezado:

Range("A1").CurrentRegion.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlYes

Con Order1:=xlDescending el orden es de mayor a menor. Para buscar un texto, conviene guardar el resultado en una variable y comprobar si se encontró, porque si no existe la macro se detiene con un error:

Dim c As Range

Set c = Cells.Find(What:="Ramón", LookIn:=xlValues, LookAt:=xlPart)

If c Is Nothing Then MsgBox "No se encontró." Else c.Select

LookAt:=xlPart encuentra el texto aunque sea parte del contenido de la celda; con xlWhole, la celda debe contener exactamente ese texto.

Insertar y eliminar filas y columnas.

Las filas y columnas se insertan o eliminan con estas instrucciones:

Código Qué hace
Rows(5).Insert Inserta una fila antes de la 5
Selection.EntireRow.Insert Inserta filas en la selección
Rows(5).Delete Elimina la fila 5
Columns("C").Insert Inserta una columna antes de la C
Selection.EntireColumn.Delete Elimina las columnas seleccionadas

Para eliminar varias filas que cumplen una condición se recorre el rango de abajo hacia arriba, como se explica en el artículo sobre cómo eliminar filas en Excel que cumplan una condición.

Borrar el contenido de las celdas.

Hay un método distinto según lo que se quiera borrar:

Código Qué borra
Range("F2:H4").ClearContents Solo el contenido; conserva el formato
Range("F2:H4").ClearFormats Solo el formato
Range("F2:H4").Clear Contenido, formato y comentarios
Range("F2:H4").ClearComments Solo los comentarios
Range("F2:H4").Hyperlinks.Delete Solo los hipervínculos

ClearContents equivale a la tecla Supr, y los demás, a las opciones del botón «Borrar» del grupo «Edición» de la pestaña «Inicio»: «Borrar todo», «Borrar formatos», «Borrar contenido», «Borrar comentarios» y «Borrar hipervínculos». En una tabla con formato de tabla, Supr borra los datos pero no el estilo de la tabla; para quitarlo todo se usa «Borrar todo».

Borrar los textos que superen un número de caracteres.

Un lector preguntó por una macro que borre los textos de más de 60 caracteres. Recorre las celdas seleccionadas y borra las que superan ese largo:

Sub BorrarTextosLargos()

Dim c As Range

For Each c In Selection

If Len(c.Value) > 60 Then c.ClearContents

Next c

End Sub

Si en lugar de borrar el texto se quiere recortarlo a 60 caracteres, la línea del If se cambia por If Len(c.Value) > 60 Then c.Value = Left(c.Value, 60).

Recorrer rangos y encontrar la última fila.

Muchas macros necesitan saber hasta dónde llegan los datos. La última fila con datos de la columna A se obtiene así:

u = Cells(Rows.Count, "A").End(xlUp).Row

La instrucción va a la última fila de la hoja y sube hasta encontrar un dato, igual que Ctrl + flecha arriba. Con Cells(u + 1, "A").Select se llega a la primera celda vacía debajo de los datos. Las fórmulas para traer el último dato se explican en el artículo sobre cómo llamar el último dato de una columna.

Para hacer algo con cada celda de un rango se usa For Each. Por ejemplo, marcar en rojo los valores negativos:

Dim c As Range

For Each c In Range("B2:B100")

If IsNumeric(c.Value) And c.Value < 0 Then c.Font.Color = vbRed

Next c

IsNumeric evita que la macro se detenga si una celda tiene texto.

Mensajes, hojas y libros.

Para comunicarse con el usuario y trabajar con hojas y libros, los códigos más usados son estos:

Código Qué hace
MsgBox "Proceso terminado" Muestra un mensaje
nombre = InputBox("Escriba el nombre") Pide un dato
Worksheets("Resumen").Activate Va a una hoja
Worksheets.Add.Name = "Resumen" Agrega una hoja con nombre
ActiveSheet.Protect Password:="1234" Protege la hoja (Unprotect la desprotege)
Workbooks.Open Filename:="C:\Documentos\Ventas.xlsx" Abre un libro
ActiveWorkbook.SaveAs Filename:="C:\Documentos\Copia.xlsx", FileFormat:=51 Guarda como .xlsx (52 para .xlsm)
Application.ScreenUpdating = False Evita el parpadeo y acelera la macro

Cuando se desactiva ScreenUpdating, hay que volver a activarlo con True al final de la macro. Las macros para abrir libros y para exportar a PDF se explican en los artículos sobre cómo abrir un libro de Excel desde otro libro y cómo guardar una hoja de Excel en PDF.

Asignar una macro a un botón.

Para ejecutar una macro con un clic se inserta una forma desde «Insertar», «Ilustraciones», «Formas», se dibuja en la hoja, se hace clic derecho sobre ella y se elige «Asignar macro». El procedimiento completo está en el artículo sobre cómo crear un botón en Excel.

Descargar los códigos.

El archivo de texto contiene dieciséis macros de ejemplo con los códigos del artículo: escribir en celdas, formato, alineación, pegar valores, ordenar, buscar, insertar y eliminar, borrar, borrar textos largos, última fila, recorrer un rango, pedir un dato, hojas, proteger, abrir y guardar, y acelerar macros.

Preguntas frecuentes.

A continuación respondemos las preguntas frecuentes de nuestros lectores.

¿Dónde se escriben los códigos de macros en Excel?

En el editor de Visual Basic (Alt + F11), en un módulo creado con «Insertar», «Módulo».

¿Cuál es el código para borrar el contenido de una celda sin borrar el formato?

Range("A1").ClearContents.

¿Qué diferencia hay entre Clear y ClearContents?

Clear borra el contenido y el formato; ClearContents solo el contenido.

¿Cómo escribo una fórmula con una macro?

Con Range("B1").Formula = "=SUM(B2:B10)", en inglés y con coma, o con FormulaLocal en español.

¿Cómo encuentro la última fila con datos en VBA?

Con Cells(Rows.Count, "A").End(xlUp).Row.

¿Aún no tienes cuenta en Gerencie.com?
El registro es completamente gratis y desbloquea beneficios exclusivos.

Forma de citar este artículo (APA):

Gerencie.com. (2026, octubre 15). Códigos de macros más comunes en Excel [Entrada de blog]. Recuperado de https://www.gerencie.com/codigos-mas-comunes-de-macros-en-excel.html

Deje su opinión o su pregunta. Trataremos de darle respuesta. Su comentario o pregunta será editada automáticamente por el sistema.

Regístrese para que le avisemos cuando respondan su pregunta.