Welcome to the board.
The answer is in the question.
You have told the Application (Excel) that you want to run the macro in the workbook at a certain time. Until it runs the macro, it won't know what it does so it will have to open the workbook to close it.
You could create a personal.xls (google it...) and put the macro in there. If you were going to do this I would pass the workbook name in as an argument and get the macro to check if the workbook was in the workbooks collection before closing it - this obviously doesn't help if you are distributing the workbook and not the personal.xls