N/APosted on - 02/08/2012
I used and encoded VBA with my Windows 7.
It is for my job which I will need to send to my clients. I tested it on my PC, and it works without issues.
After that, I send copies to my client’s PC but they were complaining that they got an error 430. I checked on every possible solutions and end up realizing that the error may be due to an earlier version of shell32.
My clients are running Windows XP computer, and I used Windows 7 when encoding it.
IF I am right, how can I fix it?
Microsoft Visual Basic
Run-time error ‘430’:
Class does not support Automation or does not support expected interface
Error on VBA encoded in Windows 7 and run with Windows XP
Usually this error appears as a result of the project type change from the DLL to EXE and from the compatibility of the project. The Class ID (CLSID) of the class is preserved by Visual Basic but no the Interface ID (IID) which is in Project Compatibility. What happens is that the class ends up registered between two servers namely: local server (EXE) and in-proc server (DLL); because the Class ID is preserved. The DLL class is then chosen when you create an instance of the class for a client due to the fact that the class from the DLL will not support the new IID.
Other reasons are given below for your reference:
Not all the files needed were included
The ones needed to be registered may not have been registered
Wrong folder allocation of the files
Some files’ locations might have been hardcoded in the app
The solution for this error:
The RegSvr32.EXE utility must be used to unregister the old DLL server and the new EXE server must be re-registered to eliminate this error.
I hope this helps.