Sounds to me like you need to make your workbook into an add-in. This means the file will open without a workbook being visible (Excel won't allow you to hide ALL worksheets in an xls file) and the macros can be called from within that. The code can also be protected so it can't be opened without a password. As always, be aware that this password can be removed - it will keep out casual users but an experienced user will be able to remove the password without breaking a sweat.
If you want to turn your workbook into an add-in, there is an excellent tutorial here :
The password required by this action does not even require a confirmation!!!
All I can remember, I clicked on Wndow/hide intending to unhide a file and a password window popped up. As I was protecting other sheets with a password, I typed the same password and ZOOOOOm the workbook was unhidden! I clicked on hide and password prompt came up and repeatd my password and it was hidden.
You can hide your modules from view using the VBA Project Properties. Open the VBE(ALT+F11) and locate your workbook(project) in the project explorer on the left. If the project explorer is not open, use CTRL+R to open it. Right click on your project and select VBAProject Properties. On the protection tab, check "Lock project from viewing". Assign a password.
This will prevent MOST users from viewing the code. If that is not enough, then the Add-in approach might be best.