DOMINA-BACH Básico study materials
DOMINA-BACH Básico study resources

DOMINA-BACH Básico: Procedimientos, funciones y paso de argumentos

DOMINA-BACH Básico · Work through your exam, one topic at a time.

All guide sections

Procedimientos, funciones y paso de argumentos

El dominio Procedimientos, funciones y paso de argumentos comprueba si distingues cuándo un bloque devuelve valor y cómo se comportan los parámetros entre el llamador y el procedimiento.

Sub frente a Function

Un Sub ejecuta acciones y no devuelve nada; una Function devuelve un valor asignándolo a su propio nombre antes de End Function. El tipo de retorno se declara (As Double); si se omite, devuelve Variant. Una función sin asignación explícita devuelve 0, cadena vacía o Empty según su tipo.

Paso de argumentos

  • Por defecto los argumentos son ByRef: el procedimiento recibe la dirección de la variable y puede modificarla. ByVal entrega una copia.
  • Optional tasa As Double = 0.21 define un parámetro opcional, siempre al final de la lista. IsMissing solo funciona con parámetros Variant sin valor por defecto.
  • ParamArray args() recoge un número indeterminado de argumentos.
  • Public y Private controlan la visibilidad en todo el proyecto o solo en el módulo.

Llamada

Como sentencia: Calcular precio o Call Calcular(precio). Como expresión: resultado = ConIVA(precio), con paréntesis obligatorios.

Ejemplo razonado

Function ConIVA(precio As Double, Optional tasa As Double = 0.21) As Double
    ConIVA = precio * (1 + tasa)
End Function

El resultado se asigna a ConIVA, no a una variable local. El valor por defecto permite llamar ConIVA(100) o ConIVA(100, 0.10). Declarar Double evita el redondeo de Integer y documenta la intención.

Errores que cuestan puntos

No asignar nada al nombre de la función; envolver entre paréntesis la llamada a un Sub y alterar el paso de argumentos; olvidar que ByRef es el modo predeterminado y modificar sin querer la variable del llamador; y colocar un opcional antes de un obligatorio.