Как программно удалить цифровую подпись из макросов VBA в Excel? - PullRequest
2 голосов
/ 29 июля 2009

Есть ли способ программно удалить цифровую подпись из макросов VBA листа Excel?

т.е. код, эквивалентный входу в редактор VBA, открытию меню «Сервис» -> «Цифровая подпись» и нажатию «Удалить».

1 Ответ

1 голос
/ 21 января 2011

Интересный вопрос. Из соображений безопасности он намеренно не является частью объектной модели Excel.

Возможно удалить сертификат из хранилища сертификатов. Для этого требуются вызовы API Win32 (которые могут быть сделаны из VB6 или VBA, но я не уверен в точном влиянии на ваш проект, когда вы сделаете это ... Это определенно сделает сертификат недействительным, но я не знаю, удалит ли он его. Также вы можете не захотеть удалить сертификат из хранилища (поскольку вы можете использовать его для чего-то другого).

Чтобы просмотреть хранилище сертификатов, введите certmgr.msc в приглашении «Выполнить».

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

Требования:
1. Вам нужно скачать Windows SDK для соответствующей платформы, чтобы получить capicom dll's, + regsvr32 их 2. Вам потребуется извлечь открытый ключ из сертификата, который вы хотите удалить.
3. Сначала проведите тестирование с неважной рабочей книгой. Я понятия не имею, приведет ли этот метод (помимо признания сертификата недействительным) также к повреждению рабочей книги. Надеюсь, у кого-то есть лучшее предложение, чем это.

...