Solved it

The Before_Save subroutine had a variable called Password which was being used to open an Oracle session. I'm guessing that this is a reserved word and the application somehow interpreted this as an instruction to save the Excel file as password encrypted.

The solution was simply to open the file using the Oracle password.

The code has now been changed to use a different variable name and now works as expected.

Thanks to all for their help.