Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2009, 15:18   #1
pozharnik
 
Регистрация: 23.12.2009
Сообщений: 3
По умолчанию Защита VBA Project

Добрый день!
у меня следующая ситуация:
имеется лист в excel. лист этот заблокирован, проект VBA тоже заблокирован. Но проблема в том, что при копировании листа в новый файл, пароль на VBA проект (выставленный в редакторе VBA) не сохраняется и соответственно сотрудники, которым этот файл раздается, могут увидеть код, скопировав лист в новый файл.
как сделать, чтобы пароль на vba проект сохранятся при копировании листа в новый файл?
pozharnik вне форума Ответить с цитированием
Старый 23.12.2009, 15:34   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Выложите файл с запароленым листом и проектом.
Код можете любой написать.
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 23.12.2009, 15:37   #3
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Проверил - действительно, код становится открытым. Вот уж не думал, что всё так просто...


Можно попробовать оставить в модулях листов только вызовы процедур:
Код:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ОбработкаСобытия Target
End Sub
А сам код перенести в стандартные модули, которые не копируются вместе с листом:
Код:
Sub ОбработкаСобытия(ByVal Target As Range)
    ' здесь код, который не надо никому показывать
    Target.Interior.Color = vbRed
End Sub
PS: Вообще, любая защита кода тут не поможет.
Достаточно открыть файл с макросом в OpenOffice...
EducatedFool вне форума Ответить с цитированием
Старый 23.12.2009, 16:45   #4
pozharnik
 
Регистрация: 23.12.2009
Сообщений: 3
По умолчанию

так не получается, тк при копировании листа в новый файл, стандартные модули не переносятся в новый файл.
pozharnik вне форума Ответить с цитированием
Старый 25.12.2009, 08:16   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Можно попробовать оставить в модулях листов только вызовы процедур:
Код:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ОбработкаСобытия Target
End Sub
А сам код перенести в стандартные модули, которые не копируются вместе с листом...

PS: Вообще, любая защита кода тут не поможет.
Достаточно открыть файл с макросом в OpenOffice...
Цитата:
Сообщение от pozharnik Посмотреть сообщение
так не получается, тк при копировании листа в новый файл, стандартные модули не переносятся в новый файл.
Можно сами процедуры поместить в надстройку.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 25.12.2009, 13:29   #6
pozharnik
 
Регистрация: 23.12.2009
Сообщений: 3
По умолчанию

надстройки никогда не делала.. придется вникать.
pozharnik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Непонятные вещи в Project VBA Jetronic Microsoft Office Excel 2 29.10.2009 08:56
Q-Project russian-stalker Gamedev - cоздание игр: Unity, OpenGL, DirectX 12 05.10.2009 21:34
Получаю сообщение "This file is used by the project manager only and should be treated like the project f fs444 C++ Builder 1 22.09.2009 11:05
Защита приложения Excel от проникновения пользователя в проект VBA Raikhman Microsoft Office Excel 15 02.02.2009 01:31
защита ячейки в VBA tat-besidovska Microsoft Office Excel 4 06.02.2008 04:57