(There may be more efficient purer ways of doing this, but I don't wish to spend time learning Excel internals/object models, and I know my route will work reasonably well).
ActiveX is not internal to Excel. Being a generic component interface, it's available over almost all microsoft technologies.
