ss_blog_claim=6d539eb724f5bfc0336f5c7ab9fdc177

Tuesday, June 30, 2009

Error stdole32.tlb solved!



Last week, I encountered a very weird issue on my computer. I have a desktop with Windows Vista Ultimate and Microsoft Office 2007 Professional Plus. It has been working for a while until I decided to install Microsoft Visio 2007 and Microsoft Project 2007. Then my problems began.

Everytime I started an Office application, it would act as if it were installing that Office program all over again.



Even the Office files were unassociated--DOCX and DOC files would not open in Microsoft Word by default.

But the key to getting this error fixed had to be the error message that appears whenever I open up Microsoft Excel: stdole32.tlb.

So what I did first was to uninstall Microsoft Office and Microsoft Encarta. But that did not fix it. I did it a couple of times but to no avail. I was desperate. I thought my Norton Antivirus was causing the problem so I uninstalled it, reinstalled Microsoft Office and Microsoft Encarta before installing Norton Antivirus but it was still unresolved.

I then installed Windows Vista Service Pack 1, thinking it would fix the problem. That too didn't fix it. I was ready to format my hard drive and start from scratch.

But then I decided to search online for possible solutions to this problem. Maybe I wasn't alone after all. I then came across this site and it really helped me lot to get my computer working again.

It turns out that there were no groups or usernames that HKEY_CLASSES_ROOT in the registry could be provided permissions.



In the Registry Editor, checking on permissions on HKEY_CLASSES_ROOT should reveal something like this:



However, mine was special, and it did not have any groups or users that can be provided permissions:



The fix involved using the SubinACL tool available from Microsoft as a free download. It should install in C:\Program Files\Windows Resource Kits\Toolsby default.

Then I typed the following code in Notepad:

subinacl /subkeyreg HKEY_CURRENT_USER /grant=administrators=f /grant=system=f /grant=restricted=r /grant=YOURUSERNAME=f /grant=restricted=r /setowner=administrators
subinacl /keyreg HKEY_CURRENT_USER /grant=administrators=f /grant=system=f /grant=restricted=r /grant=YOURUSERNAME=f /grant=restricted=r /setowner=administrators

subinacl /subkeyreg HKEY_LOCAL_MACHINE /grant=administrators=f /grant=system=f /grant=users=r /grant=everyone=r /setowner=administrators
subinacl /keyreg HKEY_LOCAL_MACHINE /grant=administrators=f /grant=system=f /grant=users=r /grant=everyone=r /setowner=administrators

subinacl /subkeyreg HKEY_CLASSES_ROOT /grant=administrators=f /grant=system=f /grant=users=r /setowner=administrators
subinacl /keyreg HKEY_CLASSES_ROOT /grant=administrators=f /grant=system=f /grant=users=r /setowner=administrators

replacing YOURUSERNAME with the computer username. After saving the file as officefix.cmd in the same path as where SubinACL was installed, I simply double-clicked on it and it repaired my registry.