1) Насколько мне известно (и тесты это подтверждают), в англ. версиях Excel 2002(XP) и 2003 значение .EnableSelection прекрасно сохраняется. Однако в версиях более ранних (Excel 2000 и ранее), по дизайну, оно не сохранялось и, соответственно, лист, защищенный таким образом в Excel 2003, в Excel 2000 или 97 откроется незащищенным.
Вот код, который я использовал (единственное, что не сохраняется, так это параметр UserInterfaceOnly, но это по дизайну):
- Код: Выделить всё
Sub test()
Dim wb As Workbook
Set wb = Workbooks.Add
With wb
With .Worksheets(1)
.Protect Password:="123", UserInterfaceOnly:=True
.EnableSelection = xlUnlockedCells
End With
.SaveAs "C:\Users\User1\Desktop\test.xls"
.Close
End With
End Sub
2) Если же проблема возникает в версиях Excel 2002+, то возможно надо искать причину где-то в самом коде макроса(ов). Возможно есть процедура, отменяющая нужную установку, или возникает другая ошибка.
3) Если исключены пункты 1) и 2), то возможно нужно установить все обновления для Excel, т.к. баги особенно распространены в локализованных версиях.