Programación VBA en Excel: ¿Qué son los códigos VBA y cómo se usan?

La mayoría de los usuarios de Windows conocen la suite Office de Microsoft y sus numerosas aplicaciones potentes, y muchos de ellos utilizan estas aplicaciones en sus tareas diarias. Sin embargo, solo unos pocos de estos usuarios están versados en Excel. Sin embargo, Excel está lleno de características como macros y códigos VBA, que pueden facilitar mucho tus tareas diarias.

Today, we will discuss these advanced features and teach you to streamline your workflow. Nos adentraremos en los códigos VBA y las macros de Excel y te mostraremos cómo usarlos proporcionando ejemplos. También habrá una sección sobre la prevención de la pérdida de datos, ya que los códigos VBA pueden eliminar los datos de Excel si se utilizan incorrectamente.

En este artículo
    1. Insertar múltiples columnas
    2. Insertar múltiples filas
    3. Ajustar automáticamente las columnas
    4. Ajustar automáticamente las filas
    5. Descombinar celdas
    6. Resaltar valores mayores que
    7. Resaltar valores menores que
    8. Resaltar números negativos
    9. Resaltar celdas con errores ortográficos
    10. Mostrar hojas de cálculo ocultas
    11. Eliminar todo excepto las hojas de cálculo activas
    12. Eliminar hojas en blanco
    13. Guardar las hojas de cálculo como PDF
    14. Cerrar libros de trabajo
    15. Actualizar tablas dinámicas
    16. Agregar gráficos como imágenes
    17. Insertar imágenes
    18. Eliminar caracteres de cadenas
    19. Invertir texto
    20. Reemplazar celdas vacías con ceros

¿Qué es un código VBA?

Antes de examinar ejemplos de código VBA, primero debemos discutir sobre VBA y explicar qué es. VBA, o Visual Basic for Applications, es un lenguaje de programación que las aplicaciones de Microsoft Office, como Excel, utilizan para crear, guardar y desplegar macros, también conocidas como scripts de tareas automatizadas.

Por otro lado, las macros son scripts de programación o un conjunto de comandos que pueden automatizar tu flujo de trabajo en Excel. Estos scripts permiten a los usuarios completar acciones complejas y que consumen mucho tiempo en las hojas de cálculo con un acceso directo pregrabado, lo que les permite ahorrar tiempo al administrar datos, pivotar tablas y organizar hojas de cálculo.

¿Cómo usar códigos de macro en Excel?

Ahora que conocemos los conceptos básicos detrás de las macros de Excel, pasaremos directamente a usar estos códigos y te mostraremos cómo crear uno mediante un ejemplo de macro en Excel. Aquí tienes lo que necesitarás hacer:

  1. Abre Microsoft Excel y navega a Archivo > Opciones > Personalizar la cinta de opciones.
  2. Bajo Pestañas principales, marca la casilla junto a Desarrollador para habilitar la función que está oculta por defecto.
    agregar la pestaña Desarrollador en Excel
  3. Guarda tus ajustes haciendo clic en Aceptar y luego navega a la pestaña Desarrollador.
    ve a la pestaña de desarrollador añadida
  4. Selecciona la opción Grabar macro.
    comienza a grabar una macro en Excel
  5. Nombre su macro y describa brevemente lo que hace para que pueda identificarla más tarde. También puedes añadir accesos directos para invocar la macro.
  6. Una vez introducidos los detalles de la macro, puedes hacer clic en Aceptar y realizar las acciones que desees añadir a la macro. La aplicación de Excel registrará y guardará estas acciones dentro de la macro creada.
  7. Haz clic en Detener grabación una vez que hayas completado tus acciones, y tu macro estará lista.
    detén la grabación y completa la macro
  8. Cuando necesites usar estos pasos de nuevo, puedes presionar los botones del teclado e invocar la macro a través del acceso directo que estableciste. Como alternativa, ve a Desarrollador > Macros > Ver macros y haz clic en Ejecutar en la macro que desees.

Tus acciones pregrabadas se ejecutarán a través de la macro, y podrás comprobar los resultados. Recuerda que comprobar es un paso muy importante, especialmente para los principiantes en macros, y te permite asegurarte de que tus nuevas tareas automatizadas funcionen correctamente. Necesitarás editar tus macros si tus acciones no funcionan como deseabas.

20 ejemplos básicos de código VBA de Excel para principiantes

Como se mencionó anteriormente, VBA significa Visual Basic for Applications, un lenguaje que Excel puede entender. Cualquier macro que hagas con los pasos mencionados anteriormente registrará tus acciones en la hoja de cálculo, las convertirá en código VBA legible por Excel y las guardará como algo que Excel puede reconocer y entender.

Con eso dicho, también hemos proporcionado algunos ejemplos básicos de código VBA y macros, así que veamos cómo se ven las macros útiles y para qué puedes usarlas:

  1. Insertar múltiples columnas
  2. Insertar múltiples filas
  3. Ajustar automáticamente las columnas
  4. Ajustar automáticamente las filas
  5. Descombinar celdas
  6. Resaltar valores mayores que
  7. Resaltar valores menores que
  8. Resaltar números negativos
  9. Resaltar celdas con errores ortográficos
  10. Mostrar hojas de cálculo ocultas
  11. Eliminar todo excepto las hojas de cálculo activas
  12. Eliminar hojas en blanco
  13. Guardar las hojas de cálculo como PDF
  14. Cerrar libros de trabajo
  15. Actualizar tablas dinámicas
  16. Agregar gráficos como imágenes
  17. Insertar imágenes
  18. Eliminar caracteres de cadenas
  19. Invertir texto
  20. Reemplazar celdas vacías con ceros

Estas macros hacen lo que su nombre sugiere, y puedes copiarlas y probarlas en tus propios archivos XLS. Encontrarás sus códigos VBA a continuación, pero recuerda probarlos en hojas de cálculo poco importantes o crear copias de tus archivos importantes antes.

Insertar Múltiples Columnas

Sub InsertarMultiplesColumnas()
Dim i As Integer
Dim j As Integer
ActiveCell.EntireColumn.Select
On Error GoTo Last
i = InputBox("Ingrese el número de columnas a insertar", "Insertar Columnas")
For j = 1 To i
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromRightOrAbove
Next j
Last: Exit Sub
End Sub

Insertar Múltiples Filas

Sub InsertarMultiplesFilas()
Dim i As Integer
Dim j As Integer
ActiveCell.EntireRow.Select
On Error GoTo Last
i = InputBox("Ingrese el número de filas a insertar", "Insertar Filas")
For j = 1 To i
Selection.Insert Shift:=xlToDown, CopyOrigin:=xlFormatFromRightOrAbove
Next j
Last: Exit Sub
End Sub

Ajustar Ancho de Columnas

Sub AjustarAnchoColumnas()
Cells.Select
Cells.EntireColumn.AutoFit
End Sub

Ajustar Altura de Filas

Sub AjustarAlturaFilas()
Cells.Select
Cells.EntireRow.AutoFit
End Sub

Descombinar Celdas

Sub DescombinarCeldas()
Selection.UnMerge
End Sub

Resaltar Valores Mayores que

Sub ResaltarValoresMayoresQue()
Dim i As Integer
i = InputBox("Ingrese el valor mayor que", "Ingrese el Valor")
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlCellValue, _
Operator:=xlGreater, Formula1:=i
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1)
.Font.Color = RGB(0, 0, 0)
.Interior.Color = RGB(31, 218, 154)
End With
End Sub

Resaltar Valores Menores que

Sub ResaltarValoresMenoresQue()
Dim i As Integer
i = InputBox("Ingrese el valor menor que", "Ingrese el Valor")
Selection.FormatConditions.Delete
Selection.FormatConditions.Add _
Type:=xlCellValue, _
Operator:=xlLess, _
Formula1:=i
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1)
.Font.Color = RGB(0, 0, 0)
.Interior.Color = RGB(217, 83, 79)
End With
End Sub

Resaltar Números Negativos

Sub ResaltarNumerosNegativos()
Dim Rng As Range
For Each Rng In Selection
If WorksheetFunction.IsNumber(Rng) Then
If Rng.Value < 0 Then
Rng.Font.Color= -16776961
End If
End If
Next
End Sub

Resaltar Celdas con Errores Ortográficos

Sub ResaltarCeldasConErroresOrtograficos()
Dim rng As Range
For Each rng In ActiveSheet.UsedRange
If Not Application.CheckSpelling(word:=rng.Text) Then
rng.Style = "Bad"
End If
Next rng
End Sub

Mostrar Hojas de Cálculo Ocultas

Sub MostrarTodasLasHojasDeCalculo()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
ws.Visible = xlSheetVisible
Next ws
End Sub

Eliminar Todo Excepto las Hojas de Cálculo Activas

Sub EliminarHojasDeCalculo()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.name <> ThisWorkbook.ActiveSheet.name Then
Application.DisplayAlerts = False
ws.Delete
Application.DisplayAlerts = True
End If
Next ws
End Sub

Eliminar Hojas de Cálculo en Blanco

Sub EliminarHojasDeCalculoEnBlanco ()
Dim Ws As Worksheet
On Error Resume Next
Application.ScreenUpdating= False
Application.DisplayAlerts= False
For Each Ws In Application.Worksheets
If Application.WorksheetFunction.CountA(Ws.UsedRange) = 0 Then
Ws.Delete
End If
Next
Application.ScreenUpdating= True
Application.DisplayAlerts= True
End Sub

Guardar Hojas de Cálculo como PDF

Sub GuardarHojasDeCalculoComoPDF()
Dim ws As Worksheet
For Each ws In Worksheets
ws.ExportAsFixedFormat _
xlTypePDF, _
"INGRESE-NOMBRE-DE-CARPETA-AQUÍ" &; _
ws.Name & ".pdf"
Next ws
End Sub

Cerrar Libros de Trabajo

Sub CerrarTodosLosLibrosDeTrabajo()
Dim wbs As Workbook
For Each wbs In Workbooks
wbs.Close SaveChanges:=True
Next wbs
End Sub

Actualizar Tablas Dinámicas

Sub actualizar_todas_las_tablas_pivote()
Dim pt As PivotTable
For Each pt In ActiveWorkbook.PivotTables
pt.RefreshTable
Next pt
End Sub

Agregar Gráficos como Imágenes

Sub ConvertirGraficoEnImagen()
ActiveChart.ChartArea.Copy
ActiveSheet.Range("A1").Select
ActiveSheet.Pictures.Paste.Select
End Sub

Insertar Imágenes

Sub InsertarImagenNombrada()
Selection.Copy
ActiveSheet.Pictures.Paste
End Sub

Eliminar Caracteres de Cadenas

Public Function eliminarPrimerC(cad As String, cnt As Long)
eliminarPrimerC = Right(cad, Len(cad) - cnt)
End Function

Invertir Texto

Public Function invertir(ByVal celda As Range) As String
invertir = VBA.strReverse(celda.Value)
End Function

Reemplazar Celdas Vacías con Ceros

Sub reemplazarVacioConCero()
Dim rng As Range
Selection.Value = Selection.Value
For Each rng In Selection
If rng = "" Or rng = " " Then
rng.Value = "0"
Else
End If
Next rng
End Sub

Cómo garantizar la seguridad de los datos al usar códigos VBA [Bonus]?

Como habrás notado, algunos ejemplos de código VBA anteriores incluyen tareas de eliminación de datos, y muchos expertos en Excel utilizan tales macros a diario. Sin embargo, vale la pena señalar que utilizarlos por error puede eliminar tus valiosas hojas de cálculo de Excel, por lo que debes tener cuidado con tales macros.

No hay nada que temer incluso si ya has utilizado códigos VBA de eliminación de datos, ya que hay soluciones que pueden restaurar tus archivos de Excel. Las aplicaciones de recuperación de datos funcionan de maravilla en estas situaciones, y una herramienta como Wondershare Recoverit es un ejemplo perfecto.

Descarga gratuita
Descarga gratuita

Ya sea que estés tratando con hojas de cálculo de Excel perdidas, cambios recientes no guardados, datos eliminados o códigos VBA de eliminación de datos utilizados accidentalmente, esta aplicación puede ayudarte. Su algoritmo de búsqueda y recuperación eficiente y avanzado puede restaurar rápidamente los archivos perdidos, independientemente de las situaciones de pérdida de datos, ya que la aplicación es compatible con más de 500 de ellas. Usarlo es pan comido, y aquí te explico cómo hacerlo:

  1. Abre Wondershare Recoverit y elige la opción Discos duros y ubicaciones.
    interfaz de usuario de Wondershare Recoverit
  2. Selecciona la unidad de disco donde guardas los archivos XLS: la aplicación la escaneará inmediatamente en busca de datos perdidos.
    escanea para buscar hojas de cálculo de Excel eliminadas
  3. Añade filtros de archivo y palabras clave para buscar archivos de Excel específicos.
    modifica los filtros de archivo y añade palabras clave
  4. Wondershare Recoverit te permitirá previsualizar archivos de Excel cuando los encuentre. Si estás satisfecho con la vista previa, puedes pausar o detener el escaneo y hacer clic en Recuperar para guardar los datos descubiertos en tu PC.
    previsualiza y recupera archivos de Excel

Con Wondershare Recoverit en tu arsenal, puedes usar y practicar con códigos VBA avanzados de forma segura y llevar tu flujo de trabajo en Excel a otro nivel sin preocuparte por cometer errores. También puede manejar archivos como música, fotos y vídeos, con soporte para más de 1000 tipos de archivos recuperables.

Puedes utilizar la aplicación en discos internos, almacenamiento externo, NAS, USB y otros, ya que Wondershare Recoverit es compatible con más de 2000 dispositivos de almacenamiento. Es perfecto para la pérdida de datos causada por software malintencionado, bloqueos del sistema, transferencias de archivos interrumpidas, discos duros defectuosos, etc., lo que lo convierte en una herramienta ideal para garantizar la seguridad de los datos.

Conclusión

Además de sus capacidades de cálculo, computación y hoja de cálculo, Microsoft Excel tiene varias funciones avanzadas, como las macros, que pueden agilizar tu flujo de trabajo y automatizar tareas tediosas para ahorrarte tiempo precioso. Estas macros transforman tus acciones pregrabadas en código VBA, un lenguaje de programación que Excel puede entender y utilizar.

Desde agregar múltiples filas o columnas hasta ajustar automáticamente las entradas de datos, resaltar valores, errores y caracteres hasta formatear tus hojas de cálculo, los códigos VBA pueden llevar tus habilidades en Excel al siguiente nivel con algo de práctica. Y si las cosas salen mal y cometes un error con los códigos VBA de eliminación de datos, aplicaciones de recuperación como Wondershare Recoverit pueden recuperar fácilmente tus archivos XLS vitales y datos de Excel.

Descarga gratuita
Descarga gratuita

Preguntas frecuentes

  • ¿Es difícil el código VBA?
    Para un principiante, los códigos VBA pueden parecer aterradores y complejos, y eso es en cierta medida cierto, especialmente para alguien sin conocimientos de programación. Sin embargo, experimentar con macros existentes de foros de Excel puede enseñarte rápidamente los conceptos básicos de la codificación VBA. No necesitarás convertirte en programador para crear código VBA, pero utilizar el poder de estas funciones avanzadas de Excel sin duda requerirá investigación, aprendizaje y práctica.
  • ¿Cómo encuentro códigos VBA?

    Empezar con códigos VBA puede parecer desafiante, especialmente cuando eres nuevo en macros y VBA. Sin embargo, investigando un poco online puedes encontrar innumerables foros e hilos de Excel donde los expertos ya han proporcionado numerosos ejemplos de código VBA funcional y valioso.

    Puedes copiar estos códigos VBA exactos y probarlos en tus hojas de cálculo de Excel, o profundizar en el aspecto de programación y aprender qué hace cada línea de código, lo que te permitirá editar estas macros y personalizarlas según tus necesidades en Excel.

  • ¿Cómo edito mis códigos VBA o macros?

    Editar macros existentes es tan fácil como crear una nueva. Aquí tienes cómo puedes hacerlo:

    1. Ve a la pestaña Desarrollador y selecciona Macros.

    2. Elige la macro que deseas cambiar y haz clic en Editar.

    3. Cambia el código VBA dentro del editor de Visual Basic y guarda tu macro.

    Luego puedes probar tus macros nuevamente y perfeccionarlas tantas veces como sea necesario.