У меня была похожая проблема. Мне нужен был код Excel для заполнения созданных пользователем новых листов, но я хотел защитить проект паролем. Это будет прекрасно работать, пока я не использую проекцию пароля, но Excel не позволит генерировать код на новых листах с защитой паролем.
Решение было интересным. Дайте вашему проекту простое имя или инициалы. Что-то, что люди могут легко найти.
Вы защищаете свой проект паролем и сохраняете полученный файл как XLA (добавьте).
Затем снимите защиту с рабочей книги, переименуйте файл (на случай, если вы допустите ошибку) и удалите из него весь код, модули, классы, формы и т. Д. Сохраните новый извлеченный файл Excel.
Теперь откройте новый раздетый файл и добавьте xla в TOOLS / adds. Затем перейдите в редактор VBA, Ссылки и найдите ваш проект с новым именем и ссылкой (вам, возможно, придется один раз сохранить и снова открыть, чтобы найти под ссылками).
Вот и все. новый файл, пустой от всего кода, будет работать с использованием старого кода, но у вас не будет доступа к нему без пароля. В то же время старый код может размещать код на новых рабочих листах, как и раньше, поскольку новый проект рабочей книги не защищен паролем
Я обнаружил, что если вы меняете местоположение, вашим пользователям может понадобиться найти ссылку в ссылках, но я уверен, что вы можете создать макрос для автоматического поиска и ссылки (этот макрос, конечно, будет виден в мир).
Я думаю, что это решит любую проблему с защищенным кодом.
Удачи