2008-10-24 5 views
15

у меня был проект VBA в перспективе с несколькими макросами электронной почты - но после аварии PC все они ушли, и все, что я вижу, это свежий «Project1», когда я ударил Alt + F11Где Outlook хранит файлы кода VBA?

Я не VBA программист, но имел набор удобных макросов для сортировки по электронной почте и т. д. Я бы не хотел, чтобы их снова закодировали. Кто-нибудь знает, где файлы кода должны быть в файловой системе, чтобы я мог спасти код?

ответ

21

This page имеет очень хорошее представление о том, где Outlook хранит все свои вещи. Он предлагает следующее:

макросов Все Outlook, которые хранятся в одном файле с именем VbaProject.otm в% AppData% \ папка пользователя Microsoft \ Outlook, который будет скрытая папка на большинстве систем.

Проблема в том, что если вы не видите их сейчас, то вы, вероятно, не сможете их восстановить из этого места: вероятно, существует либо пустой проект, либо проект вообще , но если эта папка будет скопирована, вы сможете ее восстановить.

Перемещение вперед, вы можете периодически экспортировать свои макросы, если это произойдет снова, либо через VBA IDE (щелкните правой кнопкой мыши и выберите «Экспорт файла ...»), либо используйте один из инструментов, упомянутых в связанной статье (например, Office Profile Wizard).

+0

Файл VBA есть, и, глядя в него с помощью текстового редактора показывает фрагменты моих макросов, но он также полон нулям и sohs - это неприятный двоичный формат по внешнему виду. В какой-то момент он, должно быть, был частично поврежден, мой код окаменел там, и я не могу его вытащить. – 2008-10-24 15:29:03

3

Хорошо. вещи, чтобы попытаться исправить это ...

Я предполагаю, что после возникновения проблемы вы попытались войти в ту же учетную запись пользователя Windows и тот же профиль Outlook.

  1. Создайте новый вход для окон на машину.
  2. Войдите в эту учетную запись и откройте Outlook, это создаст новый профиль Outlook. обратите внимание на имя профиля (чтобы найти это: Панель управления> Почтовый апплет> Показать профили ...)
  3. Теперь выйдите из Outlook и убедитесь, что он не запущен (проверьте outlook.exe в диспетчере задач).
  4. Открыть проводник Windows.
  5. Скопируйте (не вырезать) существующий файл VbaProject.OTM. (если у него есть другое имя, сначала переименуйте его в VbaProject.OTM, затем скопируйте).
  6. Перейдите к C: \ Documents и Settings \ USERNAME \ Application Data \ Microsoft \ Outlook (или использовать переменную окружения нотации% AppData% \ Microsoft \ Outlook для Vista/Win7)
  7. Переименуйте VbaProject.OTM к VbaProject.OTM.OLD
  8. Вставьте VbaProject.OTM с шага 5 в эту папку.
  9. Повторно открыть Outlook и тест (т. Е. Alt + F11).
  10. Удачи вам в восстановлении.

Если это не сработает, вы помните, что добавили сертификат самоподписывания вообще? Если у вас есть копия сертификата? вы можете попробовать переустановить его в диспетчере сертификатов (certmgr.msc) скопируйте/установите его в хранилище Certficiates - Current User \ Personal \ Certificates.

Я только что нашел это примечание от Sue Mosher (прогноз VBA гуру): «AFAIK, как только файл .otm поврежден, его невозможно восстановить.Вот почему я рекомендую, чтобы люди, которые полагаются на код VBA, экспортировали свои модули или создали резервную копию всего файла. «

-1

В этой же проблеме ни один из« ответов »не помог мне, поэтому я сделал свое собственное копание. Я нашел файл .OTM, упомянутый как @Anonymous Type, так и @Dave DuPlantis. поврежденный, даже не уверен, как можно определить, что ваш файл был поврежден из вашего очень неопределенного вопроса ... В любом случае, вот мое решение.

Проверьте свою ленту. Имеется ли вкладка разработчика? Если нет, должен решить вашу проблему. Не знаю, почему и как это самопроизвольно исчезло, хотя это совершенно новая головоломка ...

2

Все макросы встроены в файл OTM по следующему адресу:

C:\Users\(***Your User Name***)\AppData\Roaming\Microsoft\Outlook\VbaProject.OTM 

Чтобы восстановить, заменить этот файл с более старым одним, он должен работать