What action is your macro to do? If the user is to have access to it, personal.xls is the solution.
If you want the macro to run automatically when a new workbook is created, application events have to be turned on. To do this (see also xl help files):
1. add class module (here named clsApp) with:
[tt]Public WithEvents AppEvents As Application
Private Sub AppEvents_NewWorkbook(ByVal Wb As Workbook)
' your macro here with Wb reference to the workbook created
End Sub[/tt]
2. initialize application events in standard module (this macro must be run first):
[tt]Dim appEvents As New clsApp
Sub init()
Set appEvents.AppEvents = Application
End Sub[/tt]
For a better control, you can create an add-in and place the above code in it (simply save workbook with full code as excel add-in). To initialize macro automatically, in it's ThisWorkbook module add code:
[tt]Private Sub Workbook_Open()
Call init
End Sub[/tt]
When you install the add-in (tools>add-ins -> browse) it will be opened with excel, Workbook_Open macro will be executed and events initialized. It can be easily switched-off by unchecking the add-in in the add-ins window.
combo