¿Ya dominas lo básico? Un curso estructurado de VBA es la vía rápida para dar el salto.
Ver cursos de VBA en UdemyEnlace de afiliado. No te cuesta nada extra.
- 01Preparar el entorno (lo que necesitas)
- 02Tu primera salida (MsgBox)
- 03Declarar variables (Dim)
- 04Condicionales (la sentencia If)
- 05Repetir (la sentencia For)
- 06Repetir (la sentencia Do While)
- 07Escribir un procedimiento Sub
- 08Procedimientos Function (trabajo que devuelve un valor)
- 09Leer y escribir celdas (Range y Cells)
- 10Trabajar con arrays
- 11Trabajar con texto
- 12La sentencia With
- 13Variables de objeto y trabajo con hojas
- 14Recorrer elementos (For Each)
- 15Manejo de errores (On Error)
- 16La sentencia Select Case
- 17Argumentos (ByVal y ByRef)
- 18Trabajar con colecciones (Collection)
- 19Grabar macros y procedimientos de evento
- 20[Proyecto] Construye una hoja de inventario
Procedimientos Function (trabajo que devuelve un valor)
En esta lección escribirás un procedimiento que devuelve un resultado.
Un Function declara el tipo de lo que devuelve al final de la cabecera: Function AddTax(price As Long) As Long. Para devolver el valor se asigna al propio nombre de la función. Int() descarta los decimales.
El código de ejemplo calcula un precio con impuesto incluido.
Esa forma de devolver es la particularidad más llamativa: no existe return, sino que se escribe AddTax = price + .... Cuesta acostumbrarse porque parece que estás asignando a una variable. Y si olvidas hacerlo, la función no da error: devuelve el valor vacío del tipo (0 para números, cadena vacía para texto), y el fallo aparece más adelante.
Lo mejor de las Function en VBA es que se pueden usar directamente desde la hoja, como si fueran fórmulas propias: escribiendo =AddTax(1000) en una celda funciona. Eso permite crear funciones a medida para cálculos que Excel no trae de serie, y es una de las razones más potentes para aprender VBA.
🧪 Este sitio no puede compilar ni ejecutar VBA directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).
