2. VBA: Código y Automatización

La grabadora de macros es útil, pero limitada. Para tener control total, necesitas escribir el guion tú mismo. En esta lección perderás el miedo a la pantalla de código y crearás tu primera Fórmula Personalizada.

El Editor (VBE)

Bienvenido a la "matrix" de Excel. Para entrar aquí, usa el atajo sagrado:

Alt + F11

Abrir Visual Basic Editor

Aquí es donde vive el código.
Paso Clave: El código no flota en el aire. Debes insertarlo en un Módulo.
En el VBE, ve a menú Insertar > Módulo. Ahí escribirás tus scripts.

Crear Fórmulas Propias (UDF)

¿Excel no tiene una fórmula para calcular el IVA de tu país o una comisión compleja? ¡Créala tú mismo!

Escribe esto en tu módulo:

Function CALCULAR_IVA(Precio As Double) As Double
    ' Esto calcula el 16% de impuesto
    CALCULAR_IVA = Precio * 0.16
End Function

¡Magia! Ahora, si vas a cualquier celda de Excel y escribes =CALCULAR_IVA(100), te dará el resultado. Acabas de extender las capacidades de Excel.

Subrutinas y Botones

Las Functions devuelven valores; las Subs (Subrutinas) realizan acciones (borrar, copiar, enviar correos).

Sub SaludarUsuario()
    MsgBox "¡Hola! Tarea completada con éxito.", vbInformation
End Sub

Cómo crear un botón:

  1. Pestaña Programador > Insertar > Botón (Control de formulario).
  2. Dibuja el botón en la hoja.
  3. Excel te preguntará "¿Qué macro asigno?". Selecciona SaludarUsuario.
  4. ¡Clic y listo!

El Vocabulario de VBA

Para controlar Excel, debes saber cómo llamar a las cosas:

  • Range("A1").Value = "Hola" → Escribe en la celda A1.
  • Range("A1:B10").ClearContents → Borra el contenido (no el formato).
  • Sheets("Hoja2").Select → Cambia de hoja.
  • ActiveCell.Value → Lo que hay en la celda seleccionada.
Desafío: "El Limpiador Automático"
Formulario de Captura

Tienes un formulario de captura de datos (Nombre, Apellido, Edad).
1. Crea un botón que diga "Limpiar Formulario".
2. Al hacer clic, debe borrar SOLO las celdas de entrada (C3, C4, C5), dejar el cursor en C3 listo para escribir, y mostrar un mensaje que diga "Listo".

Publicidad

Tu Turno: Ejercicios

Descarga el archivo y escribe tu primer código:

Function PRECIO_FINAL(p As Double, d As Double) As Double
    PRECIO_FINAL = p - d
End Function

Sub BorrarDatos()
    Range("C3:C5").ClearContents
    Range("C3").Select
    MsgBox "Formulario Limpio"
End Sub

Archivo de Práctica

Plantilla de formulario lista para programar.

Descargar Excel
Publicidad
Volver al Temario
Publicidad