My experience has been that it is easier to build an ActivX Dll that contains the macro code rather than use a COM Add-in.