Microsoft Outlook 2013: ошибка проверки подписи проекта VBA

После перезагрузки компьютера я захотел использовать свои макросы VBA для Outlook 2013.

В Outlook я получаю сообщение об ошибке:

"Произошла ошибка при попытке проверить подпись проекта VBA. Макросы будут отключены".

Следовательно, редактор VBA утверждает:

"Макросы в этом проекте отключены. [..]"

Я пытался:

  1. Разработчик -> Защита макросов -> (*) Включить все макросы (не только с цифровой подписью)

  2. Определите сертификат с помощью

    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

Столкнувшись с этим только сейчас, вот как я в итоге решил (ни одно из других предложений не сработало для меня):

  1. Создайте самоконтроль - я назвал мой "Автосерт" (сгенерированный отсюда в Office 2013 - C:\Program Files (x86)\Microsoft Office\Office15\SELFCERT.EXE)
  2. Запустите certmgr.crt из меню "Пуск" и скопируйте "Self Cert" из "Personal\Certificates" в папку "Trusted Root Certification Authorities\Certificates"
  3. Откройте Outlook.exe как администратор
  4. Откройте VBA (т.е. Разработчик -> Visual Basic)
  5. Откройте свой модуль, содержащий код VBA
  6. Выберите Инструменты -> Цифровая подпись -> Выбрать...
  7. Выберите OK, чтобы выбрать "Self Cert" (VB затем показывает проект как подписанный с этим сертификатом), затем нажмите OK, снова примите и закройте окно
  8. Нажмите, чтобы сохранить макрос в VBA - на самом деле нажмите кнопку сохранения в VB (причудливо он ломается, если вы явно не сохраните здесь)
  9. Закрыть VBA
  10. Закройте Outlook и выберите "Да", чтобы сохранить проект VBA.
  11. Перезапустите Outlook.exe снова как администратор.
  12. Либо сейчас, либо после того, как вы снова откроете "Разработчик -> Visual Basic", должно появиться окно с подсказкой о недавно подписанном макросе - я нажал "запомнить" и больше не запрашивал
  13. Макросы теперь должны работать! Я использую их как часть правила электронной почты, и теперь это прекрасно обрабатывается.

Я не совсем уверен, что вам нужно запускать 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]".

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

Другие вопросы по тегам