Microsoft Outlook 2013: ошибка проверки подписи проекта VBA
После перезагрузки компьютера я захотел использовать свои макросы VBA для Outlook 2013.
В Outlook я получаю сообщение об ошибке:
"Произошла ошибка при попытке проверить подпись проекта VBA. Макросы будут отключены".
Следовательно, редактор VBA утверждает:
"Макросы в этом проекте отключены. [..]"
Я пытался:
Разработчик -> Защита макросов -> (*) Включить все макросы (не только с цифровой подписью)
Определите сертификат с помощью
C:\Program Files (x86)\Microsoft Office\Office15\selfcert.exe
Ничего не сработало. Любая идея?
4 ответа
Хорошо, я нашел причину моей проблемы:
(1) Сертификат nameofmycert
по selfcert.exe был назначен на мой проект VBA.
(2) Однако я не назначил его доверенному органу, как это видно по адресу: https://technet.microsoft.com/en-us/library/cc754841.aspx
(3) Outlook был настроен для разрешения всех макросов (не только с цифровой подписью). Во всяком случае он обнаружил, что мой проект VBA был сертифицирован, но не был уверен, что сертификация правильная, из-за (2). Поэтому он деактивировал все макросы.
(4) В VBA/ Инструменты / Dignital Signature появилось:
Certificate name: [no certificate]
Sign as: nameofmycert
Кнопка удаления была деактивирована.
Решение:
(1) VBA/ Инструменты / Цифровая подпись
(2) Нажмите на Choose ..
и выберите сертификат. Затем активируется кнопка удаления.
(3) Нажмите на Remove Certificate
(4) Сохранить проект VBA
(5) Перезапустите Outlook
Столкнувшись с этим только сейчас, вот как я в итоге решил (ни одно из других предложений не сработало для меня):
- Создайте самоконтроль - я назвал мой "Автосерт" (сгенерированный отсюда в Office 2013 - C:\Program Files (x86)\Microsoft Office\Office15\SELFCERT.EXE)
- Запустите certmgr.crt из меню "Пуск" и скопируйте "Self Cert" из "Personal\Certificates" в папку "Trusted Root Certification Authorities\Certificates"
- Откройте Outlook.exe как администратор
- Откройте VBA (т.е. Разработчик -> Visual Basic)
- Откройте свой модуль, содержащий код VBA
- Выберите Инструменты -> Цифровая подпись -> Выбрать...
- Выберите OK, чтобы выбрать "Self Cert" (VB затем показывает проект как подписанный с этим сертификатом), затем нажмите OK, снова примите и закройте окно
- Нажмите, чтобы сохранить макрос в VBA - на самом деле нажмите кнопку сохранения в VB (причудливо он ломается, если вы явно не сохраните здесь)
- Закрыть VBA
- Закройте Outlook и выберите "Да", чтобы сохранить проект VBA.
- Перезапустите Outlook.exe снова как администратор.
- Либо сейчас, либо после того, как вы снова откроете "Разработчик -> Visual Basic", должно появиться окно с подсказкой о недавно подписанном макросе - я нажал "запомнить" и больше не запрашивал
- Макросы теперь должны работать! Я использую их как часть правила электронной почты, и теперь это прекрасно обрабатывается.
Я не совсем уверен, что вам нужно запускать Outlook в качестве администратора в приведенном выше, но теперь он работает без запуска в качестве администратора, поэтому я счастлив.
Спасибо этому ресурсу за то, что он работает для меня! Я просто обновил, обобщил и расширил ответы. https://social.technet.microsoft.com/Forums/en-US/07f0158c-085b-4031-93a1-c9d047cf855c/unable-to-sign-outlook-2010-vbaproject?forum=outlook
У меня была такая же проблема, и решение здесь исправлено: https://social.technet.microsoft.com/Forums/en-US/07f0158c-085b-4031-93a1-c9d047cf855c/unable-to-sign-outlook-2010-vbaproject?forum=outlook. Поток длинный, но суть в том, что вам нужно вручную сохранить ваш проект VBA после подписания и перед выходом из редактора VBA. Прокрутите вниз примерно на 2/3 пути к посту "Диана Поремски [MVP]".
Вам необходимо изменить параметры центра управления безопасностью (запустить все макросы, а не только с цифровой подписью) или приобрести действительный сертификат в доверенном органе.