Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am on Windows 7. In the past I was using Excel 2003. I installed Office 2013 and found that my Office 2003 was intact and I could run both versions. I made updates to some worksheets using Excel 2013 and VBA code.

I was informed that I needed to use Office 2010 (I won't go into the reasons) so I uninstalled Office 2013 and installed Office 2010 (Corporate licenses). When I open the spreadsheets that I modified using Excel 2013 in 2010 I get a Microsoft Visual Basic for Applications message:

Class not registered. Looking for object with CLSID:(AC9F2F90-E877-11DE-9F68-00AA00574A4F)

When I hit Ok, I get the Excel message

Excel found unreadable content in name_of_spreadsheet.xls. Do you want to recover the content of this workbook?

If I select YES then I get a message that reads

Excel was able to open the file by repairing or removing the unreadable content. Lost Visual Basic project. Repairs were made to PivotTable report, One or more invalid conditional formats were removed from the workbook and Lost ActiveX controls.

Now the VBA code is not found. The workbook opens and looks normal, but buttons running VBA don't work, and when opening VBA (Alt+F11), I don't see any of the modules.

I tried running the FM20.dll using regsrv32.exe and I get a message which says:

The module fm20.dll failed to load. Make sure the binary is stored at the specified path or debug it to check for problems with the binary or dependent .DLL files. The specified module could not be found".

But I ran regsrv32 from the subdirectory the FM20.dll was in.

I presume my problems have to do with losing the Visual Basic project and/or ActiveX controls.

What do I need to do to be able to find the VBA code that was there before removing Excel 2013 and installing Excel 2010?

share|improve this question

I had a similar problem. I used a different fm20.dll file from another computer that had not been "upgraded" to 2013 yet. Registration of fm20.dll went fine and my problem went away. It seems the fm20.dll file was corrupt. Any VBA that has Userforms seem to be affected. The Excel 2010 error that I recieved was: "The visual basic for applications (VBA) macros for this workbook are corrupted and has been deleted. The macros corruption most likely exists in the current file. To recover the macros, open up a backup copy of this file if you have one." A simple test of opening a VBA workbook with only code, which worked, and a simple file with a Userform which had one label on it with no code, which failed, led me to the fm20.dll file. I got the same message trying to register the fm20.dll file on the problem system, saying the file was bad. Copied a new fm20.dll from a good system, registration went fine, problem went away.

share|improve this answer

Office 2013 installs VBA 7.1. With it, an updated versions of FM20.dll - which in turn has a dependency on the VC10 redistributables - specifically msvcr100.dll. When VBA 7.1 is uninstalled - it does not remove FM20.dll - but the accompanying application most likely will remove the VC10 redist. When it does, FM20.dll is broken. It's not that it's corrupt - it's just incomplete. (I tracked this down using the Visual Studio tool, Depends.exe)

The problem is that reinstalling an application that uses VBA 6.x - won't overwrite this newer version of FM20.dll and so the file remains broken.

It seems like it's a bug in the VBA 7.1 installer that it doesn't clean up this file. You have to workaround choices. Delete FM20.dll and repair your older app - or install the VC10 redistributable.

share|improve this answer

Just so you know, I had the same problems this week after finding 2013 didn't support Access .mdb files, so went back to the last version I had (2003), and had exactly the same problem.

Thankfully, it was a PC that had only just been build, so ended up re-formating it after spending a day trying to fix it (excel.exe /regserver), clearing out the registry of all office accesses, regsvr32.exe etc...

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.