Вопрос

Я ищу возможность добавить дополнительный уровень безопасности в мои проекты Excel.

У нас есть несколько пользователей. Некоторые, кто знает (и предназначен) пароль, который разблокирует макросы VBA. Другие не должны иметь возможность получить доступ к ним.

Я не уверен, что у кого -то есть пароль, который не должен (изменение пароля не остановило вмешивание), поэтому я хотел бы отключить окно редактирования VBA для любого пользователя, не одобренного. Я не могу найти способ сделать это, хотя, возможно ли это?

Я не могу отключить опцию «Сохранить», так как всем пользователям необходимо сохранять данные.

Я пытался отключить значки ленты и т. Д., Но без успеха. По -прежнему возможно открыть окно кода с помощью ALT+F11.

Любая помощь была бы отличной.

Это было полезно?

Решение

Я приезжаю из Excel 2003, но эта концепция должна работать и для вас. Вы могли бы думать о

  • захватывая ключ ALT-F11 (Application.OnKey "%{F11}" "MyNullSub") плюс
  • Отключить соответствующие записи меню (Application.CommandBars(...).FindControl(ID:=..).OnAction = "MyNullSub")

с

Sub MyNullSub()
' do nothing
End Sub

как зависимость от входа в реестр, который должен присутствовать (GetSetting(...)), но это поможет только до тех пор, пока этот дополнительный секрет не будет распространяться так же, как (измененные) пароли, очевидно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top