If the macro is in the workbook, the workbook must be open for the macro to
actually run. The true anwer would be specific to the context of how you
are trying to run a macro. For instance, if you assign a macro to the
onaction property of a commandbar button, then when the button is pushed, if
the workbook is closed, excel will open it and run the macro.