1.Actions are QTP specific.whereas functions are vb specific.
2.Actions - can only accept primative data types as Parameters (strings, integers, etc)
Functions - can accept arrays, dictionary objects and test objects (i.e. Pages, Frames, WebRadioGroups, etc.)
3.Actions - Return values are difficult to understand and read in the syntax.
Functions - Return values work like they do in other languages.
4.Actions - actions are associated with object Repositry (Per action or shared dependnds).
Functions : functions don't have object repositry associated with them.