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.