Как запретить пользователям доступ к VBA? - PullRequest
1 голос
/ 15 июля 2009

у нас есть надстройка COM, которую мы используем в приложениях MS Office, таких как Word и Excel. Эта надстройка COM предоставила несколько API-интерфейсов, которые мы используем для настройки.

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

Есть ли способ - отключить редактор VBA, не отключая VBA, потому что мы хотим использовать другие макросы и надстройки.

Заранее спасибо!

PS - я пытался скрыть вкладку «Разработчик» на панели инструментов, но любой, кто знает ярлык (ALT-F11), все равно может его использовать.

Ответы [ 3 ]

2 голосов
/ 15 июля 2009

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

1 голос
/ 08 октября 2013

Защита паролем VBA фактически не защищает вас от людей, читающих файл. Снять защиту невероятно просто.

Одной из альтернатив является запутывание COM API, а также VBA (так что, даже если люди смогут читать код, будет трудно понять, что происходит). Apple делала это в прошлом (например, isYoMamaWearsCombatBootsSupported - https://github.com/JaviSoto/iOS7-Runtime-Headers/commit/6ccf9c4526992fec0dc414d48e4a3f7446e9822f#L10R61)

0 голосов
/ 15 июля 2009

Не можете ли вы добавить пароль для просмотра / редактирования кода? тогда, по крайней мере, они не смогут увидеть ваш API и должны помешать им открыть редактор.

Щелкните правой кнопкой мыши проект в окне проекта VBA и выберите «Свойства», чтобы добавить пароль к этому проекту на вкладке «Защита».

...