Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Diferencia entre Sub y Function

| Sin comentarios

En esta ocasión me toca comentarles cuáles son las semejanzas y diferencias entre los procedimientos Sub y Function.

Semejanzas entre Sub y Function

Para ello empezaremos mencionando primero las SEMEJANZAS:

  1. Ambos son procedimientos, es decir, son conjuntos de instrucciones VBA que se encuentran en un módulo.
  2. Ambos pueden recibir argumentos (datos que se transfieren entre procedimientos).
  3. Un módulo VBA puede contener ambos tipos de procedimientos.
  4. El ámbito de ambos puede ser público o Privado.
  5. Pueden ser llamados / invocados desde un procedimiento SUB.

Diferencias entre Sub y Function

A continuación, indicaremos las DIFERENCIAS que encontramos:

  1. Un procedimiento Sub puede ser creado desde la grabadora de macros; cosa que no sucede con el procedimiento Function.
  2. Un procedimiento Function devuelve un único valor (o matriz), el cual se puede usar como parte de una expresión en un procedimiento o dentro de una fórmula en la hoja de Excel.
  3. Un procedimiento Function es muy útil cuando se observan secuencias del programa que repiten cálculos con frecuencia, permitiéndonos reducir líneas de código.
  4. Un procedimiento Sub inicia con la sentencia SUB seguida del nombre del procedimiento y finaliza con END SUB; Un procedimiento Function inicia con la sentencia FUNCTION seguida del nombre del procedimiento y finaliza con END FUNCTION
  5. Un procedimiento Function opera bien cuando se encuentra dentro de un módulo normal de VBA; pero devuelve un error cuando se crea dentro de un Userform, una Hoja o un ThisWorkbook.
  6. Un procedimiento SUB se puede ejecutar:
    1. Comando Ejecutar > Ejecutar Sub / Userform
    2. Pulsando F5
    3. Pulsando botón Ejecutar
    4. Desde la ventana Inmediato del editor VBA
    5. Desde cuadro de diálogo Macro de Excel
    6. Usando la combinación de teclas asociadas (Ctrl)
    7. Desde un botón con macro asignada
    8. Desde una imagen con macro asignada
    9. Desde otro procedimiento
    10. Desde un control personalizado de la Cinta de Opciones
    11. Desde un menú contextual personalizado
    12. Cuando de produce un evento asociado a un objeto
  7. Un procedimiento Function se puede ejecutar:
    1. Llamado desde un procedimiento
    2. Usándolo desde una fórmula en una hoja de cálculo
    3. Usándolo desde una fórmula dentro de un formato condicional
    4. Desde la ventana Inmediato del editor VBA

Les dejo un ejemplo de la función IMC invocada desde un Procedimiento SUB y usada en una fórmula en hoja de cálculo del libro:

IMC Function

Esperamos que esta información les haya sido de utilidad.

Hasta pronto...!!!

Wiston Narro V.

Deja una respuesta

Los campos requeridos estan marcados con *.