Redundancy is important! So, use DocumetOpen() and AutoOpen() when you write your Macros.
You can use Workbook_Open() if you want to execute anything when Excel starts.
If you write an Excel Macro absolutely use the Auto_Open() function to catch macro execution in the beginning.
Use .docm or .doc extension. New .docx extension doesn't store macros.