У Лори возникла проблема с учебным пособием, которым она хотела поделиться с другими. Книга содержала макрос, но всякий раз, когда книга защищена, чтобы другие не могли вносить в нее изменения, Лори сообщает, что «макрос отключен».

Точную проблему Лори сложно воспроизвести, поскольку тестирование показывает, что макросы по-прежнему доступны как в защищенных листах, так и в защищенных книгах. Вы по-прежнему можете отобразить диалоговое окно «Макросы» и просмотреть список доступных макросов. Вы по-прежнему можете выбрать один из макросов и запустить его.

Конечно, Лори может не видеть и запускать макросы; может случиться так, что макрос не работает правильно при использовании на защищенном листе. Если это так, проблема обычно возникает только в том случае, если макрос пытается выполнить какое-либо действие, которое нарушает защиту, примененную к рабочему листу. Например, если защита не позволяет удалять строки или столбцы, и макрос пытается это сделать, то это не сработает.

Решением в этом случае является изменение макроса так, чтобы он снимал защиту листа перед внесением изменений. Ниже показано, как это делается:

Sub ModifyProtectedSheet()

ActiveSheet.Unprotect password:="yourpassword"



'work on the worksheet here

ActiveSheet.Protect password:="yourpassword", _       DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub

Первая строка этого примера снимает защиту с рабочего листа, затем вы можете выполнить свою обработку, а затем последняя строка снова защищает его. Если в вашей книге используется защита, то тот же метод можно использовать и с книгой: снимите с нее защиту, затем внесите изменения, а затем повторно защитите ее.

Проблема Лори также могла быть связана со словом «делиться», которое она использовала в своей постановке задачи. Если при совместном использовании Лори подразумевает использование «Совместное использование книги», чтобы сделать книгу «доступной для общего доступа» другим пользователям, вы увидите предупреждение, когда будет активирован общий доступ. Предупреждение указывает, что макросы нельзя «просматривать или редактировать» в общих книгах. Однако это не означает, что макросы отключены, поскольку вы все еще можете отобразить диалоговое окно «Макросы», чтобы просмотреть список макросов и выбрать один из них для запуска. Однако вы не можете отобразить редактор VBA и посмотреть на фактический код макроса.

Наконец, есть некоторые функции Excel, которые просто отключены в общих книгах. Если ваш макрос попытается выполнить какое-либо из этих отключенных действий, он не будет работать должным образом. Это ограничение Excel, и с этим ничего нельзя поделать. (Для получения дополнительных сведений о том, что нельзя делать в общей книге, используйте систему интерактивной справки и выполните поиск по запросу «общие книги, ограничения».) Единственный способ обойти эти ограничения — не предоставлять общий доступ к книге.

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (2833) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и более поздних версий) здесь:

link: / excelribbon-Using_Macros_in_Protected_Workbooks [Использование макросов в защищенных книгах].