Всегда открывать книгу, которую можно редактировать

Патрик интересуется, как запретить Excel открывать книги в защищенном режиме. Он хочет, чтобы файл открывался в обычном режиме просмотра, чтобы любой мог его открыть, прочитать и отредактировать.

Ответ полностью зависит от того, что имеется в виду под «защищенным просмотром». Если вы имеете в виду, что хотите, чтобы рабочие листы были незащищены, это относительно легко сделать с помощью макроса. Если вы действительно говорите о том, что Excel называет «защищенным просмотром», то это совершенно другая ситуация.

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

Private Sub Workbook_Open () ThisWorkbook.UnprotectEnd Sub

Конечно, это не снимает защиту отдельных рабочих листов. Это включает в себя еще несколько шагов, так как вам нужно циклически перебрать каждый рабочий лист в книге. Следующие макросы должны быть помещены в модуль ThisWorkbook для книги, листы которой вы хотите снять без защиты:

Private Sub Workbook_BeforeClose (Cancel As Boolean) «Повторно защитить листы, которые были защищены в открытой книге. Вызов ReprotectSheets» Сохранить изменения в ThisWorkbook ThisWorkbook.SaveEnd Sub Private Sub Workbook_Open () ‘Снять защиту со всех листов в этой книге Call UnprotectAllSheetsEnd Sub

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

Public arrProtectedSheets () Sub ReprotectSheets () ‘Повторная защита рабочих листов, которые были защищены в WorkbookOpen Dim i As Integer For i = LBound (arrProtectedSheets) To UBound (arrProtectedSheets) ThisWorkbook.Worksheets (arrProtectedSheets (i)). Protect Next iEnd Sub Sub UnprotectAllSheets () ‘Снять защиту со всех листов в этой книге Dim wks As Object Dim i As Integer i = 0 Для каждой недели в ThisWorkbook.Sheets Если IsSheetProtected (wks) Затем «Запомните имена защищенных листов, чтобы» повторно защитить их в WorkbookClose ReDim Preserve arrProtectedSheets (i) arrProtectedSheets (i) = wks.Name i = i + 1 ‘Снять защиту листов .Unprotect End If Next wksEnd Sub Частная функция IsSheetProtected (ByRef wks As Excel.Worksheet) As Boolean ‘Функция возвращает TRUE, если рабочий лист защищен с помощью wks IsSheetProtected = (.ProtectContents Или _ .ProtectScenarios Или. Защитить ts) End WithEnd Function

Идея макроса UnprotectAllSheets заключается в том, что он проходит через каждый рабочий лист в книге и, если он защищен (определяется в макросе IsSheetProtected), имя рабочий лист хранится в массиве. Затем содержимое массива используется в макросе ReprotectSheets, чтобы еще раз повторно защитить эти рабочие листы. Этот подход предполагает, конечно, что ни один из защищенных листов не связан с паролем..

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

  1. Отобразите вкладку «Разработчик» на ленте.
  2. Щелкните Безопасность макросов в группе «Код». Excel отображает диалоговое окно «Центр управления безопасностью».
  3. В левой части диалогового окна щелкните «Защищенный просмотр». (См. Рис. 1.)
  4. Рис. 1. Диалоговое окно «Центр управления безопасностью».

Фактические доступные параметры представления защиты зависят от используемой версии Excel. Как уже упоминалось, эти настройки контролируются на системном уровне; они не обрабатываются отдельно от книги за книгой. В результате их невозможно обойти с помощью кода макроса. Если бы они могли, то это сделало бы систему полностью уязвимой для любого кода в открываемой книге – мы бы вернулись во времена макровирусов, которые были обычным явлением для некоторых более ранних версий продуктов Office.

Дополнительную информацию о том, как работают настройки защищенного просмотра, можно найти на этом веб-сайте Microsoft:

https://support.office.com/en-us/article/what-is-protected -view-d6f09ac7-e6b9-4495-8e43-2bbcdbcb6653? ocmsassetID = HA010355931 & CorrelationId = fce5243e-6c41-4865-89e9-530f125ea252 & ui = en-US & rs = en

Открывается ли US & rs = en в США. Защищенный просмотр или нет, зависит от системных настроек пользователя. Это означает, что контроль над тем, что открывается, полностью зависит от отдельного пользователя и не может быть «принудительным» автором книги. Однако есть способы смягчить последствия этого, и они связаны с доверием. Обратите внимание, что в левой части диалогового окна «Центр управления безопасностью» есть три параметра, которые управляют этим по отношению к книгам:

  • Доверенные издатели. Книги из любые издатели, перечисленные в этой области, являются доверенными и будут открываться напрямую, минуя защищенный просмотр.
  • Надежные расположения. Книги, хранящиеся в расположениях, перечисленных в этой области, являются надежными и будет открываться напрямую, минуя защищенный просмотр.
  • Надежные документы. Отдельные книги, указанные в этой области, являются надежными и открываются напрямую, минуя защищенный просмотр.

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

Источник: frestage.ru

Бытовой вопрос