Las funciones son segmentos de código que se pueden llamar repetidamente desde diferentes partes de un programa para ejecutar alguna acción. Por lo general, solo existirá una función para una tarea determinada. Cuando exista una macro, el código real se insertará en el programa (en el momento de la compilación) cada vez que se utilice la macro.
Por lo tanto, las llamadas a funciones dan como resultado rutinas más compactas, pero hay una sobrecarga cuando se las llama y se usa. No hay sobrecarga con una macro, pero la rutina será más grande y ocupará más memoria.