views:

1125

answers:

2

I had a VBA project in outlook with a few email macros - but after a PC crash they are all gone and all I see is a fresh 'Project1' when I hit Alt+F11

I'm not a VBA programmer, but had a collection of handy macros for email sorting etc. I would not like to have to code them again. Anyone know where the code files should be on the filesystem so that I might rescue the code?

+2  A: 

This page has some really good insight on where Outlook keeps all its stuff. It suggests the following:

All Outlook macros are stored in a single file named VbaProject.otm in the user's %appdata%\Microsoft\Outlook folder, which will be a hidden folder on most systems.

Now, the problem is that if you do not see them now, then you probably won't be able to restore them from that location: there is probably either an "empty" project there or no project at all, but if that folder is being backed up, you might be able to restore it.

Moving forward, you might consider exporting your macros periodically in case this happens again, either through the VBA IDE (right-click and select Export File...) or using one of the tools mentioned in the linked article (like the Office Profile Wizard).

Dave DuPlantis
The VBA file is there, and looking inside it with a text editor shows fragments of my macros, but it is also full of nulls and sohs - it is a nasty binary format by the looks of it. It must have been semi corrupted at some point, my code is fossilized in there and I can't get it out.
Frep D-Oronge
+1  A: 

Ok. things to try to fix this...

I assume after the problem occured you tried logging back into the same windows user account, and the same Outlook profile.

  1. Create a new windows login to the machine in question.
  2. Login to this account and open Outlook, this will create a new outlook profile. make note of the profile name (to find this: Control Panel > Mail applet > Show Profiles...)
  3. Now Exit Outlook, and make sure it is not running (check for outlook.exe in task manager).
  4. Open Windows Explorer.
  5. Copy (don't cut) the existing VbaProject.OTM file. (if it has any other name than that, first rename it to VbaProject.OTM, then copy).
  6. Navigate to C:\Documents and Settings\USERNAME\Application Data\Microsoft\Outlook (or %apdata%\Microsoft\Outlook for vista/win7)
  7. Rename the existing VbaProject.OTM to VbaProject.OTM.OLD
  8. Paste the VbaProject.OTM from step 5 into this folder.
  9. Reopen Outlook and test (i.e. Alt + F11).
  10. Good luck with recovery.

If this doesn't work do you remember adding self signing certificate at all? If so have you got a copy of the cert? you can try reinstalling it into the certificate manager (certmgr.msc) copy/install it to the Certficiates - Current User\Personal\Certificates hive.

I just found this note from Sue Mosher (outlook VBA guru): "AFAIK, once an .otm file is corrupted, it can't be recovered. That's why I recommend that people who rely on VBA code export their modules or backup the entire file. "

Anonymous Type