RE:funciones y proceedimientos
la diferencia principal es que las funciones te permite cambiar los valores de las variables que envias ademas de que la funcion propiamente tal te retorna un valor si asi lo deseas , el procedimiento solo envias variables procesa pero no retorna valor ni cambia las variables un ejemplo de function :
function nn (campo)
'proceso....
campo = nuevo valor
nn = "cualquier valor"
end fucntion
la variable campo puede ser cambiada dentro de la function y cuando salga de ella tendra el nuevo valor y la function te retornara un valor tambien en este caso "cualquier valor" osea la puees llamar asi
valor_funcion = nn(campor)
donde valor_funcion tomara el valor "cualquier valor"
Saludos