Register Login

Difference between Macro and Subroutine

Updated May 18, 2018

Subroutine Vs. Macro

Macros can only be used in the program the are defined in and only after the definition are expanded at compilation / generation. 

Subroutines (FORM) can be called from both the program the are defined in and other programs.

A MACRO is more or less an abbreviation for some lines of code that are used more than once or twice. A FORM is a local subroutine (which can be called external). A FUNCTION is (more or less) a subroutine that is called external. 

Since debugging a MACRO is not really possible, prevent the use of them (I’ve never used them, but seen them in action). If the subroutine is used only local (called internal) use a FORM. If the subroutine is called external (used by more than one program) use a FUNCTION.


×